break 文は現在のループ、switch、ラベル文を中断して、中断した文の次の文にプログラムの制御を移します。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
break [label];
label- 省略可能。中断する文のラベルに関連付けられた識別子。中断する文がループでも
switchでもない場合、ラベルは必須です。
説明
break 文にはラベルを含められて、ラベル付き文から抜け出すことができます。break 文は、参照するラベル付き文の内側にある必要があります。ラベル付き文はどんなブロック文でもかまいません。ループ文である必要さえありません。
例
次の関数には、i が 3 の時に while 文を中断する break 文があるので、3 * x の値を返します。
function testBreak(x) {
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
return i * x;
}
次のコードは、ラベル付きブロックとともに break 文を使っています。break 文は、参照先ラベル付き文の内側になければなりません。inner_block が outer_block 内にあることに注意してください。
outer_block: {
inner_block: {
console.log('1');
break outer_block; // inner_block および outer_block の両方から抜けます
console.log(':-('); // スキップする
}
console.log('2'); // スキップする
}
次のコードもラベル付きブロックとともに break 文を使っていますが、break 文が block_1 の内側にあるにもかかわらず block_2 を参照しているので、Syntax Error が発生します。break は、必ず参照先ラベルの内側になければなりません。
block_1: {
console.log('1');
break block_2; // SyntaxError: label not found
}
block_2: {
console.log('2');
}
仕様
| 仕様書 | 策定状況 | コメント |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) | 標準 | 最初期の定義。ラベルなし版。 |
| ECMAScript 3rd Edition (ECMA-262) | 標準 | ラベルあり版を追加。 |
| ECMAScript 5.1 (ECMA-262) Break statement の定義 |
標準 | |
| ECMAScript 2015 (6th Edition, ECMA-262) Break statement の定義 |
標準 | |
| ECMAScript Latest Draft (ECMA-262) Break statement の定義 |
ドラフト |
ブラウザ実装状況
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
break | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応