break
語句
來自 cppreference.com
使包含的 for、range-for、while 或 do-while 迴圈或 switch 語句終止。
當使用條件表示式和條件語句終止迴圈不方便時使用。
目錄 |
[編輯] 語法
attr (可選) break ; |
|||||||||
屬性 | - | (自 C++11 起) 任意數量的屬性 |
[編輯] 解釋
僅出現在迴圈體(while
、do-while
、for
)的 statement 中,或 switch
的 statement 中。此語句執行後,控制權將轉移到緊跟在包含迴圈或 switch 之後的語句。與任何塊退出一樣,在執行包含迴圈後的第一行之前,在包含複合語句或迴圈/switch 的 condition 中宣告的所有自動儲存物件都將以與構造相反的順序銷燬。
[編輯] 注意
break 語句不能用於跳出多個巢狀迴圈。goto 語句可用於此目的。
[編輯] 關鍵詞
[編輯] 示例
執行此程式碼
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; // <---- maybe warning: fall through case 2: std::cout << "2"; // execution starts at this case label (+warning) case 3: std::cout << "3"; // <---- maybe warning: fall through case 4: // <---- maybe warning: fall through case 5: std::cout << "45"; // break; // execution of subsequent statements is terminated case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // only this loop is affected by break { // if (i == 2) // break; // std::cout << c << i << ' '; // } } std::cout << '\n'; }
可能的輸出
2345 a0 a1 b0 b1
[編輯] 參閱
[[fallthrough]] (C++17) |
指示從前一個 case 標籤的直落是故意的,不應被警告直落的編譯器診斷 (屬性說明符) |
C 文件 關於 break
|