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;」時に多重ループを抜け出しているのがわかります。

このようにラベルを使って記述するとシンプルに多重ループを抜け出せます。

JavaScript入門