break statement
外側の for ループ、 while ループ、または do-while ループ、あるいは switch文 を終了させます。
条件式と条件文を使用してループを終了することが不適切な場合に使用されます。
目次 |
構文
attr-spec-seq
(optional)
break
;
|
|||||||||
| attr-spec-seq | - |
(C23)
break
文に適用される
属性
のオプションリスト
|
ループ本体の
statement
内(
while
、
do-while
、
for
)または
switch
の
statement
内でのみ使用可能です。
説明
この文の後、制御は囲んでいるループまたはswitchの直後の文または宣言に移ります。あたかも
goto
によって行われたかのように。
キーワード
注記
break文を使用して複数のネストされたループから抜け出すことはできません。この目的には
goto
statement
を使用することができます。
例
#include <stdio.h> int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2なので、このcaseラベルから実行が開始される case 3: printf("3"); case 4: case 5: printf("45"); break; // 以降のcaseの実行は終了される case 6: printf("6"); } printf("\n"); // これら2つのネストされたforループの出力を比較 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++) // 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++ documentation
for
break
statement
|
|