このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SyntaxError: continue must be inside loop

JavaScript の例外 "continue must be inside loop" は、continue 文がループ文の中でない場所にあったときに発生します。

エラーメッセージ

SyntaxError: Illegal continue statement: no surrounding iteration statement (V8-based)
SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement (V8-based)
SyntaxError: continue must be inside loop (Firefox)
SyntaxError: 'continue' is only valid inside a loop statement. (Safari)
SyntaxError: Cannot continue to the label 'label' as it is not targeting a loop. (Safari)

エラー型

SyntaxError.

エラーの原因

continue 文はループを継続するために使用できますが、それ以外の場所で使用すると構文エラーとなります。あるいは、ラベル を continue 文に指定することで、そのラベルを持つ任意のループを継続することができます。ただし、ラベルが包含する文を参照していない場合、別のエラー SyntaxError: label not found が発生します。また、ラベルがループではない文を参照している場合も、同様に構文エラーが発生します。

例

コールバック内で continue を使用

forEach() ループで次の反復処理に進みたい場合は、代わりに return を使用するか、for...of ループに変換するかしてください。

js
array.forEach((value) => {
  if (value === 5) {
    continue; // SyntaxError: continue must be inside loop
  }
  // value で何かを行う
});
js
array.forEach((value) => {
  if (value === 5) {
    return;
  }
  // value で何かを行う
});
js
for (const value of array) {
  if (value === 5) {
    continue;
  }
  // value で何かを行う
}

関連情報