JavaScript: if文でbreakを使って処理を抜けるのは可能?

JavaScript では、if 文だけの中で break を使用するとエラーが出ます。

break は switch 文とループ文中でのみ使用可能です。
なので「switch 文やループ文の中にある if 文」の場合は、 break は使用できます。

もしswitch 文やループ文の中ではなくても、 if 文の途中で処理を抜け出したい場合は、 関数内であれば return文を使うことで、処理を抜け出せます。

if 文の中で break を使うとどうなる?

次のような、if 文の中に break があるコードを実行してみます。


if (a == b){
	break;
} else {
	c = 0;
}

// 実行結果
SyntaxError: unlabeled break must be inside loop or switch

このように、「ループかswitch 文の中で使用するように」というエラーがでます。

ループ文中のif 文で break を使用するとどうなる?

次は、ループ文中に if 文があり、その中で break が使用されているケースです。

これはエラーがでるのでしょうか?


for (var i = 0; i < 10; i++){
	
	if (a == b){
		break;
	} else {
		c = 0;
	}
	
}

上のコードは、エラーは発生しません。

この break は、for 文を抜け出すための break として機能します。 ですから、正常に実行できます。

このように、「switch 文やループ文の中にある if 文」の場合は、 break は使用できます。

関数内で、処理を抜け出すなら return 文が使える

通常 break 文を使うのは、「処理を抜け出す」のが目的だと思います。

関数内であれば、return 文を使えば関数を抜けることになりますから、 「処理を抜け出す」という目的は達成できます。

return 文は、関数内であればどこでも使用できます。

ですから、次のように if 文だけの場合でも実行できます。


function test(){
	
	if (a == b){
		return;
	} else {
		c = 0;
	}
	
}

このように、関数内であれば return 文を使用することで、関数を抜けることができます。

break、continue、return が使える場所

ここで、break、continue、return が使える場所を整理しておきます。

使える場所
breakswitch文、ループ文
continueループ文
return関数
JavaScript入門