読者です 読者をやめる 読者になる 読者になる

ねっとぱんだ

Webデザイン、プログラミングの勉強ブログ。

【javascript】 break、continue

break

swich文を抜ける。
break文がない場合、それ以下のcaseも実行される。

var x = 20;
switch(x){
case 10:
document.write(x + 'は十です。');
break;

case 20:
document.write(x + 'は二十です。');
break;

case 30:
document.write(x + 'は三十です。');
break;

default:
document.write(x + 'は十、二十、三十以外です。')
}

ループを抜ける。
i === 5になった時点でfor構文を抜け出している。

for(var i = 0; i <= 10; i++){
	if(i === 5){
		break;
	}
	document.write(i);
}

break文のラベル

ラベルのないbreakはbreakが入っている内側のループのみ抜け出す。
以下の場合、0~4までの数字が3回書き出される。

for(var i = 0; i < 3; i++){
	for(var j = 0; j <= 10; j++){
		if(j ==5){
			break;
		}
		document.write(j,',');
	}
	document.write('<br>')
}

labelを指定した場合、同じlabelを指定したループから抜け出せる。

labelA:for(var i = 0; i < 3; i++){
	for(var j = 0; j <= 10; j++){
		if(j ==5){
			break labelA;
		}
		document.write(j,',');
	}
	document.write('<br>')
}

continue

その時のループを飛ばし、次の処理を行う。
以下ではcontinueが実行された時点で、それ以降の処理を飛ばし、次のループに移行する。

var i = 0
do{
	i++;
	if(i % 2 == 0 ){
		continue;
	}
	document.write(i,',');
}while(i <= 10);

ラベルのないcontinueはcontinueが入っている内側のループのみ抜け出す。
以下はiを書き出す処理を3回行う。

var i = 0;
var j = 0
do{
	j++
	var i = 0;
do{
	i++;
	if(i % 2 == 0 ){
		continue;
	}
	document.write(i,',');
}while(i <= 10);
document.write('<br>');
}while(j < 3);

指定したlabelからループを再開する。
以下は内側のループのcontinueが実行された時点で外側のループから再開される。

var i = 0;
var j = 0
labelA: do{
	j++
	var i = 0;
do{
	i++;
	if(i % 2 == 0 ){
		continue labelA;
	}
	document.write(i,',');
}while(i <= 10);
document.write('<br>');
}while(j < 3);