continue

continueは、現在のループまたはラベル付きループの現在反復処理中の文の実行を終了して、次の反復処理でループの実行を続けます。

試してみましょう

構文

continue [label];
label

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

解説

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

  • while ループでは、条件式にジャンプします。
  • for ループでは、更新式までジャンプします。

continue 文には任意でラベルを含めることができ、現在のループの代わりにラベル付きループ文の次の反復処理へジャンプすることができます。この場合、continue 文は、ラベル付き文の中にある必要があります。

while における continue の使用

次の例では、 while ループで i の値が 3 であるときに実行される continue 文を持つものを示しています。よって、 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 文の先頭から継続します。

ラベルもご覧ください。

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

仕様書

Specification
ECMAScript Language Specification
# sec-continue-statement

ブラウザーの互換性

BCD tables only load in the browser

関連情報