Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

continue 文は現在のループ、またはラベル付きループの現在反復中の文の実行を終了し、そのループの実行を、その次の反復を用いて継続します。

構文

continue [label];

パラメータ

label
その文のラベルに関連付けられた識別子。

説明

break 文とは対照的に、continue はループの実行を完全には終了しません。代わりに、

  • while ループの中では、条件へ戻ります。
  • for ループの中では、更新式へジャンプします。

continue 文には、プログラムが現在のループの代わりにラベル付きループ文の次の反復へジャンプすることを可能にする、任意のラベルを含められます。この場合、continue 文は、このラベル付き文の中にネストされている必要があります。

例: continuewhile とともに使う

次の例は、i の値が 3 であるときに実行される continue 文を持つ while ループを表しています。よって、n は値 1、3、7、および 12 をとります。

var i = 0;
var n = 0;

while (i < 5) {
  i++;

  if (i === 3) {
    continue;
  }

  n += i;
}

例: continue をラベルとともに使う

次の例では、checkiandj とラベル付けされた文が、checkj とラベル付けされた文を含んでいます。もし continue と遭遇したなら、プログラムは checkj 文の先頭から継続します。continue と遭遇するたびに、checkj の条件が false を返すまで、checkj は再度反復します。false が返されたら、checkiandj 文の残りが完遂されます。

もし continue がラベル checkiandj を持っていたなら、プログラムは checkiandj 文の先頭から継続したでしょう。

label もご覧ください。

var i = 0;
var j = 8;

checkiandj: while (i < 4) {
  console.log("i: " + i);
  i += 1;

  checkj: while (j > 4) {
    console.log("j: "+ j);
    j -= 1;

    if ((j % 2) == 0)
      continue checkj;
    console.log(j + " is odd.");
  }
  console.log("i = " + i);
  console.log("j = " + j);
}

結果:

"i: 0"

// start checkj
"j: 8"
"7 is odd."
"j: 7"
"j: 6"
"5 is odd."
"j: 5"
// end checkj

"i = 1" 
"j = 4" 

"i: 1"
"i = 2" 
"j = 4"

"i: 2"
"i = 3"
"j = 4"

"i: 3"
"i = 4"
"j = 4"

仕様

仕様書 策定状況 コメント
ECMAScript 1st Edition (ECMA-262) 標準 最初期の定義。ラベルなし版。
ECMAScript 3rd Edition (ECMA-262) 標準 ラベルあり版を追加。
ECMAScript 5.1 (ECMA-262)
Continue statement の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Continue statement の定義
標準  
ECMAScript 2017 Draft (ECMA-262)
Continue 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,