JavaScript | break文とcontinue文でラベルを指定する

JavaScript JavaScript
スポンサーリンク

1. ラベルとは?

基本イメージ

  • ラベルは「名前付きのしるし」です。
  • forwhile の繰り返し処理に名前を付けて、breakcontinue でどのループに作用するかを明確にします。

書き方

ラベル名: for (let i = 0; i < 3; i++) {
    // 繰り返し処理
}
JavaScript

例:「outer」というラベルをつけた場合

outer: for (let i = 1; i <= 3; i++) {
    console.log("i = " + i);
}
JavaScript

2. break文でラベルを使う

break は「ループを途中で抜ける」ために使います。
ラベルを付けると「どのループを抜けるか」を指定できます。

例題1:ラベルなし

for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        if (i * j > 4) {
            break; // 内側のループだけ抜ける
        }
        console.log(i + "*" + j + "=" + (i*j));
    }
}
JavaScript

出力:

1*1=1
1*2=2
1*3=3
2*1=2
2*2=4

break は内側のループだけ終了します。


例題2:ラベルあり

outer: for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        if (i * j > 4) {
            break outer; // outerラベルのループを抜ける
        }
        console.log(i + "*" + j + "=" + (i*j));
    }
}
JavaScript

出力:

1*1=1
1*2=2
1*3=3
2*1=2
2*2=4

break outer により、外側のループも一緒に終了します。


3. continue文でラベルを使う

continue は「今のループの残りをスキップして、次の回へ進む」ために使います。
ラベルを付けると「どのループの次の回に移るか」を指定できます。

例題3:ラベルなし

for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        if ((i*j) % 2 == 0) {
            continue; // 内側のループだけ次の回へ
        }
        console.log(i + "*" + j + "=" + (i*j));
    }
}
JavaScript

出力:

1*1=1
1*3=3
2*1=2
2*3=6
3*1=3
3*3=9

✅ 偶数の場合はスキップして、次の j に進みます。


例題4:ラベルあり

outer: for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        if ((i*j) % 2 == 0) {
            continue outer; // outerループの次の回へ
        }
        console.log(i + "*" + j + "=" + (i*j));
    }
}
JavaScript

出力:

1*1=1
3*1=3

continue outer により、内側ループを飛ばして外側ループの次の回に移ります。


まとめ

用語動作
breakループを途中で終了する
continue今のループの残りをスキップして次の回へ
ラベル付き外側のループまで指定して終了/次の回に移れる

💡 ポイント

  • ラベルは「どのループに作用させるか」を明確にするためのもの。
  • 複雑なネスト(入れ子)のループで便利。
  • 使いすぎるとコードが読みにくくなるので注意。

タイトルとURLをコピーしました