ループの中にループがあるような多重ループを抜ける場合には、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)