break文
From cppreference.com
囲んでいる for、while、または do-while ループ、あるいは switch文 を終了させます。
条件式や条件文を使ってループを終了させるのが不便な場合に使用されます。
目次 |
[編集] 構文
attr-spec-seq (任意) break ; |
|||||||||
| attr-spec-seq | - | (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) |
前のケースラベルからのフォールスルーが意図的なものであり、フォールスルーについて警告するコンパイラによって診断されるべきではないことを示します (属性指定子) |
| C++ドキュメント
break文 | |