break文
From cppreference.com
囲んでいるfor、range-for、while、do-whileループ、またはswitch文を終了させます。
条件式や条件文を使ってループを終了させるのが難しい場合に、この文が使われます。
目次 |
[編集] 構文
attr (省略可能) break ; |
|||||||||
| attr | - | (C++11以降) 任意の数の属性 |
[編集] 説明
ループ本体 (while, do-while, for) の文内、またはswitchの文内にのみ現れます。この文の後、制御は囲んでいるループまたはswitchの直後の文に転送されます。ブロックを抜ける際と同様に、囲んでいる複合文またはループ/switchの条件で宣言されたすべての自動記憶域オブジェクトは、囲んでいるループの直後の最初の行が実行される前に、構築とは逆順に破棄されます。
[編集] 備考
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) |
前のケースラベルからのフォールスルーが意図的なものであり、フォールスルーについて警告するコンパイラによって診断されるべきではないことを示します (属性指定子) |
| breakのCドキュメント
| |