4.5 break 與 continue

圖 4-2:break vs continue 的差異

有時候你想在迴圈中途強制停止、或跳過當前一次的剩餘步驟。breakcontinue 就是做這個的。

break:立即跳出迴圈

  • 執行到 break 時,迴圈立刻結束
  • 只離開「最近的一層」迴圈

continue:跳過當前一次的剩餘步驟

  • 執行到 continue 時,立即跳到迴圈的下一次
  • 條件檢查和更新運算式還是會執行

範例程式碼

範例 1:用 break 提前結束迴圈

#include<iostream>
using namespace std;
int main() {
    // 印出 1 到 10,但遇到 5 就停止
    int i = 1;
    while (true) {        // 無窮迴圈
        if (i > 5) {
            break;       // 當 i > 5 時強制停止
        }
        cout << i << "\n";
        i += 1;
    }

    return 0;
}

執行結果:

1
2
3
4
5

範例 2:用 continue 跳過偶數

#include<iostream>
using namespace std;
int main() {
    // 印出 1 到 10 的所有奇數
    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            continue;    // 偶數時跳到下一次迴圈
        }
        cout << i << "\n";  // 只有奇數會執行到這裡
    }

    return 0;
}

執行結果:

1
3
5
7
9

動手試試看:寫一個程式,讀入一些數字,當遇到 0 就停止,然後輸出讀入的所有非零數字的和。