break 文は現在のループ、switch、またはラベル文を終了し、プログラムの制御を、終了した文の次の文へと移します。
構文
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 2017 Draft (ECMA-262) Break statement の定義 |
ドラフト |
ブラウザ実装状況
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |