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 (let 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入門