break
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
試してみましょう
let i = 0;while (i < 6) { if (i === 3) { break; } i = i + 1;}console.log(i);// Expected output: 3
構文
解説
break;
に遭遇すると、プログラムは最も内側のswitch
またはループ文から抜け出し、その次の文から実行を続けます。
break label;
に遭遇すると、プログラムはlabel
でラベル付けされた文から抜け出し、その次の文の実行を続けます。break
文は参照されるラベルの内側にある必要があります。ラベルはあらゆるブロック文に付けることができます。ループ文の前である必要はありません。
break
文は、その後にラベルがあるかどうかに関わらず、スクリプト、モジュール、関数の本体、静的初期化ブロックのそれぞれ最上位で使用することはできません。その関数やクラスがさらにループの中に含まれていた場合でもです。
例
while ループにおける break
次の関数にはbreak
文があり、i
が3
の時にwhile
文を終了させるので、3 * x
の値を返します。
function testBreak(x) { let i = 0; while (i < 6) { if (i === 3) { break; } i += 1; } return i * x;}
switch 文における break
次のコードには、一致する case と対応するコードが実行された後でswitch
文を終了するためのbreak
があります。
const food = "sushi";switch (food) { case "sushi": console.log("Sushi is originally from Japan."); break; case "pizza": console.log("Pizza is originally from Italy."); break; default: console.log("I have never heard of that dish."); break;}
ラベル付きブロックにおける break
次のコードは、ラベル付きブロックでbreak
文を使っています。break outerBlock
を使用すると、制御はouterBlock
としてマークされたブロック構文の末尾に移動します。
outerBlock: { innerBlock: { console.log("1"); break outerBlock; // innerBlock および outerBlock の両方から抜けます console.log(":-("); // スキップされる } console.log("2"); // スキップされる}
構文違反の break 文
break
文は参照先のラベルの中になければなりません。次のコードもラベル付きブロックでbreak
文を使っていますが、break
文がblock2
を参照しているにもかかわらずblock2
の中にないので、構文エラーが発生します。
block1: { console.log("1"); break block2; // SyntaxError: label not found}block2: { console.log("2");}
構文エラーは、次のコードのようにbreak
がループの中や、break
文によって脱出しようとしているラベル付きブロックの中で入れ子になっている関数で使われた場合にも、構文エラーが発生します。
function testBreak(x) { let i = 0; while (i < 6) { if (i === 3) { (() => { break; })(); } i += 1; } return i * x;}testBreak(1); // SyntaxError: Illegal break statement
block1: { console.log("1"); (() => { break block1; // SyntaxError: Undefined label 'block1' })();}
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-break-statement |