名稱空間
變體
操作

break 語句

來自 cppreference.com
< c‎ | 語言

導致封閉的 forwhiledo-while 迴圈或 switch 語句終止。

在其他情況下使用條件表示式和條件語句終止迴圈很麻煩時使用。

目錄

[編輯] 語法

attr-spec-seq (可選) break ;
屬性說明序列 - (C23) 應用於 break 語句的屬性的可選列表

僅出現在迴圈體(whiledo-whilefor)的 statementswitchstatement 中。

[編輯] 解釋

此語句後,控制權將轉移到緊跟在封閉迴圈或 switch 之後的語句或宣告,如同透過 goto 一樣。

[編輯] 關鍵詞

break

[編輯] 注意

break 語句不能用於跳出多個巢狀迴圈。goto 語句可用於此目的。

[編輯] 示例

#include <stdio.h>
 
int main(void)
{
    int i = 2;
    switch (i)
    {
        case 1: printf("1");
        case 2: printf("2");   // i==2, so execution starts at this case label
        case 3: printf("3");
        case 4:
        case 5: printf("45");
                break;         // execution of subsequent cases is terminated
        case 6: printf("6");
    }
    printf("\n");
 
    // Compare outputs from these two nested for loops.
    for (int j = 0; j < 2; j++)
        for (int k = 0; k < 5; k++)
            printf("%d%d ", j,k);
    printf("\n");
 
    for (int j = 0; j < 2; j++)
    {
        for (int k = 0; k < 5; k++) // only this loop is exited by break
        {
            if (k == 2)
                break;
            printf("%d%d ", j,k);
        }
    }
}

可能的輸出

2345
00 01 02 03 04 10 11 12 13 14
00 01 10 11

[編輯] 參考文獻

  • C17 標準 (ISO/IEC 9899:2018)
  • 6.8.6.3 break 語句 (p: 111)
  • C11 標準 (ISO/IEC 9899:2011)
  • 6.8.6.3 break 語句 (p: 153)
  • C99 標準 (ISO/IEC 9899:1999)
  • 6.8.6.3 break 語句 (p: 138)
  • C89/C90 標準 (ISO/IEC 9899:1990)
  • 3.6.6.3 break 語句

[編輯] 另請參閱

(C23)
指示從前一個 case 標籤的直落是故意的,不應被警告直落的編譯器診斷
(屬性說明符)[編輯]
C++ 文件,關於 break 語句