JavaScript: ラベルを使って多重ループを抜け出す
for 文がネストしている場合等の、多重ループを抜け出したい場合、 ラベルを使うと記述がシンプルになります。
通常は、ラベルの使用はあまりおすすめしませんが、 多重ループを抜け出す場合は、ラベルを使った方がコードが見やすくなる場合があります。
ラベルを使わない break の動き
まずは、ラベルを使わない break の場合の動きを見てみます。 下のコードでは、break 文を実行すると、内側のループを抜け出すだけです。 外側のループは抜け出せません。
for (var i = 0; i < 3; i++){
console.log(i);
for (var k = 0; k < 2; k++){
break;
}
}
// 実行結果
0
1
2
ラベルを使って多重ループを抜け出すコード
では次にラベルを使って外側のループを抜け出すコードを記述します。
ラベルの書式は次の2通りです。
ラベル名: 実行文
ラベル名:
実行文
先頭にラベル名、コロン(:)、実行文と記述します。実行文は複数行でも構いません。
今回はラベル名に「LOOP」という名前を使って記述します。
LOOP: for (var i = 0; i < 3; i++){
console.log(i);
for (var k = 0; k < 2; k++){
break LOOP;
}
}
// 実行結果
0
実行結果をみると、console.log(i) で表示されているのは初回の「i = 0」のときだけです。
「break LOOP;」時に多重ループを抜け出しているのがわかります。
このようにラベルを使って記述するとシンプルに多重ループを抜け出せます。