ループの中にループがあるような多重ループを抜ける場合には、C言語ならgotoを使ったり、PHPなら数値指定付きのbreakを使ったり(『多重ループを抜ける[PHP]』参照。)と特殊な方法を使うことがある。
JavaScriptでは、goto文もbreak文で数値を指定することもできないが、Javaと同じようにラベル指定付きのbreak文を使うことができる。
例えば、以下のように変数を使って2回breakしているコードがあるとする。
var break_flag = false; //多重ループから抜けるためのフラグ
for(var i=0; i<5; i++){
for(var j=0; j<5; j++){
document.writeln("("+i+", "+j+")");
if(i == 2 && j == 4){
break_flag = true;
break;
}
}
if(break_flag)
break;
}
このコードは以下のように書くことができる。
L: for(var i=0; i<5; i++){
for(var j=0; j<5; j++){
document.writeln("("+i+", "+j+")");
if(i == 2 && j == 4)
break L;
}
}
breakでラベルが指定できるように、continue文でもラベルを指定することができる。
L: for(var i=0; i<5; i++){
for(var j=0; j<5; j++){
document.writeln("("+i+", "+j+")");
if(j == 2)
continue L;
}
}
このコードを実行すると以下のようになる。
(0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) (3, 0) (3, 1) (3, 2) (4, 0) (4, 1) (4, 2)