1. ラベルとは?
基本イメージ
- ラベルは「名前付きのしるし」です。
forやwhileの繰り返し処理に名前を付けて、breakやcontinueでどのループに作用するかを明確にします。
書き方
ラベル名: for (let i = 0; i < 3; i++) {
// 繰り返し処理
}
JavaScript例:「
outer」というラベルをつけた場合
outer: for (let i = 1; i <= 3; i++) {
console.log("i = " + i);
}
JavaScript2. 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 | 今のループの残りをスキップして次の回へ |
| ラベル付き | 外側のループまで指定して終了/次の回に移れる |
💡 ポイント
- ラベルは「どのループに作用させるか」を明確にするためのもの。
- 複雑なネスト(入れ子)のループで便利。
- 使いすぎるとコードが読みにくくなるので注意。
