本篇教學將要介紹幾乎所以程式語言都有迴圈結構 - for迴圈,此結構可以重複執行結構內的程式碼,當條件式達成時,就會跳脫出迴圈並繼續往下執行其他城市碼。
那麼首先我們先來看看此結構的基本架構:
for ( variables declaration ;
running conditions ; variable operations) {
// Do something ...
}
首先for迴圈的括號內分成三個部分,第一個變數宣告,
第二個為迴圈執行條件,最後是變數操作,每個部分都必須是用分號來區隔。
變數宣告的語法和之前教學的範例一樣,並沒有不同,值得注意的是,在這裡宣告的變數只能供for迴圈區塊內使用,在架構之外的程式碼就認不得此變數。 然而,若是在for迴圈架構之外宣告的變數,for迴圈架構是可以使用此變數的,例如以下範例:
for ( int i = 0 ; ; ) {
i++;
}
printf("The result: %d\n", i); // 此行會造成編譯錯誤,因為編譯器認不得變數i。
int i = 0;
for ( ; ; ) {
i++;
}
printf("The result: %d\n", i); // 編譯通過
迴圈跳脫可以說是迴圈中關鍵的環節,若沒有這樣的處理,那麼程式就會一直卡在迴圈內,形成無窮迴圈。 那麼迴圈可以怎麼跳脫呢? 這又分成兩種方式,一種就是在迴圈執行條件部分寫上條件式,另一種就是在迴圈內部寫上跳脫條件,並且使用break關鍵字讓程式跳脫出迴圈,例如以下範例:
for ( int i = 0 ; i < 10 ; ) { //迴圈執行條件為i小於10,則迴圈持續進行
i++;
}
for ( int i = 0 ; ; ) {
i++;
if (i >= 10) // 當變數i已經大於等於10時,則跳脫出此迴圈架構。
break;
}
變數操作的部分,我們可以不僅可以對for迴圈變數宣告的變數進行操作,也能對外部變數進行操作。 而上述的範例中,我們都是在迴圈內部對變數進行操作,但若是變數沒有需要進行太複雜的計算操作,我們是可以變數操作的區隔內寫上操作的程式碼,例如以下範例:
for ( int i = 0 ; i < 10 ; i++ ) { //每次迴圈進行完一次,變數i會增加1
// Do something ...
}
for迴圈架構在應用上可以說是很彈性靈活的,有幾個值得注意的點是可以幫助你靈活地使用這個架構:
1. for迴圈括號內的三個區隔可以是空白的,但必須要有分號區隔,像是for( ; ; ),但要注意迴圈跳脫的處理。
2. 每個區隔內可以是多個定義、條件和操作,例如以下範例:
for ( int i = 0, j = 0 ; i < 10 || j < 20 ; i++, j++) { //每次迴圈進行完一次,變數i會增加1
// Do something ...
}
Last updated: