MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

break 文は現在のループ、switchラベル文を中断して、中断した文の次の文にプログラムの制御を移します。

構文

break [label];

引数

label
省略可能。中断する文のラベルに関連付けられた識別子。中断する文がループでも switch でもない場合、ラベルは必須です。

説明

break 文にはラベルを含められて、ラベル付き文から抜け出すことができます。break 文は、参照するラベル付き文の内側にある必要があります。ラベル付き文はどんなブロック文でもかまいません。ループ文である必要さえありません。

次の関数には、i3 の時に 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_blockouter_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
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: ambi, yyss, teoli, ethertank, Mgjbot, Nanto vi
 最終更新者: ambi,