首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言跳出循環控制:break 與 continue 精準用法、多層循環行為與對比

     編輯:C 語言基礎

break - 跳出整個循環

  • 用於 while/for/switch
  • 遇到即終止當前層循環,執行循環後首條語句
  • 常與 if 配合:滿足條件時退出

示例 1:死循環計算 1+...+100

int i = 1, sum = 0;
while (1) {
    sum += i;
    i++;
    if (i > 100) break;  // 第 100 次後 i=101,退出
}
printf("%d\n", sum);  // 5050

示例 2:多層循環輸出 4×4 矩陣

int i = 1, j;
while (1) {           // 外層
    j = 1;
    while (1) {       // 內層
        printf("%-4d", i * j);
        j++;
        if (j > 4) break;  // 跳出內層
    }
    printf("\n");
    i++;
    if (i > 4) break;  // 跳出外層
}

運行結果

1   2   3   4
2   4   6   8
3   6   9   12
4   8   12  16

多層循環關鍵:break 只跳出一層

  • 內層 break → 外層繼續下一次迭代
  • 外層 break → 整個雙重循環結束
  • 需跳出多層:用標誌變量、goto(慎用)、重構為函數 return

continue - 跳過本次迭代

  • 僅用於 while/for
  • 跳過循環體剩餘部分,直接進入下一次判斷/迭代
  • 常與 if 配合:滿足條件時跳過

示例:過濾輸入中的 4 和 5

char c = 0;
while (c != '\n') {
    c = getchar();           // 讀取字符
    if (c == '4' || c == '5') continue;  // 跳過 putchar
    putchar(c);              // 輸出其他字符
}

運行演示

輸入:0123456789
輸出:01236789

執行流程

  1. 讀 '0' → 不滿足 if → 輸出 '0'
  2. 讀 '4' → 滿足 if → continue → 跳過 putchar → 直接下一次循環
  3. 讀 '5' → 同理跳過
  4. ...直到讀 '\n' → 循環條件不成立 → 結束

break vs continue 核心對比

維度breakcontinue
作用範圍結束整個循環結束本次迭代
後續執行循環後代碼下一次迭代(條件判斷)
循環變量不再更新for 仍執行迭代表達式
適用場景找到目標、錯誤退出、菜單返回過濾數據、跳過無效輸入、條件分支

for 循環中 continue 的特殊行為

for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) continue;
    printf("%d ", i);  // 僅輸出奇數
}
// i 仍會正常 1→10 遞增,continue 不阻止 i++

最佳實踐

  • 優先用循環條件自然結束,減少 break/continue
  • break 用於異常/提前終止場景
  • continue 用於數據過濾/分支跳過
  • 避免深層嵌套中的 break/continue,提取函數用 return
  • 多層跳出需求時,考慮標誌變量或函數封裝
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved