開啟章節選單
迴圈控制
極為常見當你學會了兩種不同的迴圈,也許你心中會有一些困惑「我一定要執行完迴圈裡的所有程式碼嗎?如果我的程式提前達成了預期的目標,可不可以提早結束?」。答案是肯定的,我們可以透過 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; }
小測驗
下列那個敘述是錯誤的?