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 が使える場所を整理しておきます。
文 | 使える場所 |
---|---|
break | switch文、ループ文 |
continue | ループ文 |
return | 関数 |