JavaScript の continue 文
1. continue ステートメント
continue ステートメントは、ループ(loop)内における現在の反復(Iteration)をスキップします。
その反復内の残りのコードは実行されずにスキップされ、処理は即座に次の反復へと移ります。
1.1 具体例:特定の値をスキップする
以下の例では、ループカウンター(i)が 3 の場合に処理をスキップしています。
for (let i = 1; i < 10; i++) {
// i が 3 の場合、これ以降の処理をスキップして次のループ(i = 4)へ
if (i === 3) { continue; }
text += "数値は " + i + "<br>";
}2. JavaScript のラベル(Labels)
ラベル(Label)を使用すると、ステートメントやコードブロックに任意の名前を付けることができます。これにより、プログラムの制御フロー(Control Flow)、特にループ処理において特定の場所を直接参照することが可能になります。
2.1 構文(Syntax)
ラベルは、識別子の後にコロン(:)を付けて記述します。
ラベル名: ステートメント;ラベルは通常、ステートメントやコードブロックの直前に配置します。
ラベル名: {
ステートメント
}3. ラベル指定の continue(Continue to Labelname)
ラベル付きの continue を使用すると、特定のラベルが付けられたループの次の反復へジャンプできます。これは、入れ子(ネスト)になったループにおいて、内側のループから外側のループの制御を継続させたい場合に非常に強力です。
3.1 構文(Syntax)
continue ラベル名;3.2 外側のループ(loop1)へ continue する例
let text = "";
loop1: for (let j = 1; j < 5; j++) {
loop2: for (let i = 1; i < 5; i++) {
// i が 3 になると、loop2 を中断して外側の loop1 の次の反復へ進む
if (i === 3) { continue loop1; }
text += i;
}
}3.3 内側のループ(loop2)へ continue する例
let text = "";
loop1: for (let j = 1; j < 5; j++) {
loop2: for (let i = 1; i < 5; i++) {
// i が 3 になると、loop2 の現在の反復のみをスキップする
if (i === 3) { continue loop2; }
text += i;
}
}4. コードブロックの制御について
JavaScript において、break と continue は、コードブロックから「飛び出す(Jump out)」ことができる唯一のステートメントです。
※コードブロックとは、{ と } で囲まれた範囲を指します。
continue はループ専用のステートメントですが、ラベルを活用することで複雑な多重ループのロジックを簡潔に保つことができます。エンジニアとしては、ネストが深くなりすぎる前に、こうした制御文や関数の切り出しを検討するのがベストプラクティスですね。