Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

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
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

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

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