C++ 速查手冊 V1.00 - 單元 5.8 - continue 陳述




關鍵字 continue 可於迴圈中暫停執行一次,然後進行下一輪。迴圈碰到 continue 就像直接跳到迴圈最後右大括弧的地方,接著重新進行迴圈的結束條件測試,如果測試結果為真,那麼迴圈繼續進行。


舉例如下


001 #include <iostream>
002
003 int main() {
004    int i;
005    for (i = 0; i < 10; i++) {
006       if (i == 5) {
007           continue;
008       }
009
010       std::cout << i
011                 << std::endl;
012    }
013
014    return 0;
015 }
016
017 /* Kaiching Chang 
018    u0508_1.cpp
019    2014-02 */

編譯後執行,結果如下


g++ u0508_1.cpp
$ ./a.out
0
1
2
3
4
6
7
8
9
$

此例在 for 迴圈中測試控制變數 i 是否等於 5 ,如果等於 5 就執行 continue ,因此印出結果中沒有數字 5


使用 continue 需要留意控制變數的調整,我們將上例改用 while 迴圈如下


001 #include <iostream>
002
003 int main() {
004    int i = 0;
005    while (i < 10) {
006       if (i == 5) {
007           continue;
008       }
009
010       std::cout << i
011                 << std::endl;
012
013       i++;
014    }
015
016    return 0;
017 }
018
019 /* Kaiching Chang 
020    u0508_2.cpp
021    2014-02 */

由於控制變數 i 等於 5 的時候就會執行 continue ,但是 continue 之前沒有調整控制變數值,結果造成 i 永遠等於 5 ,迴圈結束條件永遠為真


$ g++ u0508_2.cpp
$ ./a.out
0
1
2
3
4
_

這造成一個無窮迴圈 (infinite loop) ,如同程式當掉不會結束執行,因此要利用按 Ctrl + c 或其他方式強制結束程式執行。


continue ...

沒有留言: