break文は、プログラミング言語のループ制御構造で用いられる文で、最も内側のfor文、while文、do-while文から脱出する。また、C言語のようなswitch文がある言語では、(ループではないが)switch文から脱出する際にも使用される。
構文と意味
C言語、およびそれに仕様を類似させている言語が備える文のひとつであり、構文としてはキーワード break とセミコロンから成る。Perlではlastというキーワードである。
ループ中(またはswitch文)の内部で実行されると、ループ全体(またはswitch文)を打ち切って、次の文へと制御を移す。
例
C言語において、単純なループからbreak文を使って抜ける例を示す。
この例では、if文の条件式が成立するとbreak文が実行され、このループの直後に制御が移される。
switch文から脱出する例も示す。詳細はswitch文を参照。
多重ループからの抜け出し
C言語
最初の例として、内側のループからの抜け出しを示す。
このコードのbreak;は内側のループのみから抜け出す。外側のwhileループは無限ループになる。
次に、多重ループからの抜け出しについて論じる。
C言語では、多重ループから一気に抜ける際にはgoto文を使用することができる。
もしgoto文を使わずにbreak文を使って書くとすれば、一例としては以下のようになり、複雑かつ冗長となる。複雑度の上昇はバグの混入を許す原因ともなる。
ほかにも、関数をそのまま脱出して呼び出し元に制御を返してよいということが前提にあるのであれば、多重ループを脱出するのにreturn文を使うこともできる。
このような場合について、gotoを使うのと同程度に明瞭簡潔に書けるようにするため、次節以降で述べるように、gotoを廃した言語では、ラベル付きbreakなどの「弱められたgoto」と言えるような機能が考案されている。
Java および JavaScript
JavaやJavaScriptはgoto文をサポートしておらず、代わりにラベル指定付きのbreak文を使うことで多重ループから一気に抜けることができる。
PHP
PHPではgoto文がバージョン5.3から実装されたが、break文にループを抜ける段数を指定することも可能である。
脚注
関連項目
- continue文




![]()