break 語句
來自 cppreference.com
導致封閉的 for、while 或 do-while 迴圈或 switch 語句終止。
在其他情況下使用條件表示式和條件語句終止迴圈很麻煩時使用。
目錄 |
[編輯] 語法
attr-spec-seq (可選) break ; |
|||||||||
屬性說明序列 | - | (C23) 應用於 break 語句的屬性的可選列表 |
僅出現在迴圈體(while
、do-while
、for
)的 statement 或 switch
的 statement 中。
[編輯] 解釋
此語句後,控制權將轉移到緊跟在封閉迴圈或 switch 之後的語句或宣告,如同透過 goto
一樣。
[編輯] 關鍵詞
[編輯] 注意
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 語句
[編輯] 另請參閱
[[fallthrough]] (C23) |
指示從前一個 case 標籤的直落是故意的,不應被警告直落的編譯器診斷 (屬性說明符) |
C++ 文件,關於
break 語句 |