當你學會了兩種不同的迴圈,也許你心中會有一些困惑「我一定要執行完迴圈裡的所有程式碼嗎?如果我的程式提前達成了預期的目標,可不可以提早結束?」。答案是肯定的,我們可以透過 continue 和 break 來「控制迴圈」。
continue - 直接進入下一輪#
continue 的中文是「繼續」意思,用來直接進入下一輪的迴圈循環。通常來說,continue 語法都會搭配一些判斷,表示只在某種情況發生時才強制進入下一圈:
for (int i = 1; i < 5; i++) {
if (i == 3) continue;
cout << i << ' ';
}
在這個例子中,當變數 i 的值為 3 時會使得 if 語句成立並執行 continue 語法,直接進入下一圈的迴圈。所以在這個例子中最後輸出的結果會長這樣。
1 2 4
可以看到,i 等於 3 的時候沒有被輸出,這就是 continue 語法的作用!
break - 跳出迴圈#
break 中文翻譯是休息、打破或結束的意思,它的用途就是直接跳出當前迴圈。先來看一個簡單的例子:
for (int i = 1; i < 5; i++) {
if (i == 3) break;
cout << i << ' ';
}
在這個例子中 i 等於 3 就會執行 break 語句。跟 continue 不一樣的是,程式不會輸出 4,因為在 i 為 3 時執行 break 語法就結束迴圈了,i 變數甚至沒有變成 4 過。所以程式只會輸出:
1 2
break 與無限迴圈#
上個單元我們有提到 while 的無限迴圈,不過在學到 break 後,我們可以使用 break 來更簡單的結束無限迴圈,因此就有了這樣的用法:
int apcs;
while (true) {
cin >> apcs;
if (apcs == 10) break;
}
break 語法還有一個方便的用法,就是當你不知道迴圈的終止條件、或是迴圈的終止條件很複雜時,可以透過 break 語法來更簡單的結束迴圈。
另外,true 這個值在 C++ 中代表 1,所以這個迴圈也可以簡寫成 while (1) 來達到相同的效果。
int apcs;
while (1) {
cin >> apcs;
if (apcs == 10) break;
}
