JavaScript: return,break,continueの違い
このページではJavaScriptのreturn、break,continueの違いについて説明します。
いずれもジャンプ文と呼ばれる文です。 プログラムに慣れないうちは、この3つを混同しやすいのでしっかりと区別できるようにしてください。 「どこで使うか」と「動作」の違いを説明します。
どこで使うかの違い
それぞれの使う場所は次の通りです。
- return: 関数
- break: ループ、switch文
- continue: ループ
動作の違い
どのような動作をするかは次の通りです。
- return: 関数を終了し、関数の呼び出し元へ戻ります。
- break: ループやswitch文を終了します。
- continue: 次の繰り返しからループを再開します。
関数の中でのbreakやcontinue
まず、「上のどこで使うか」で記述したとおり関数の中ではreturnを使うことができます。
関数の中のループ文中ではbreakやcontinueを使うことができますし、 関数の中のswitch文中ではbreakが使えます。
次のプログラムのようにreturn,break,continueを書くこともできます。 このプログラムに特に意味はありませんが、記述場所の例として
function test(a){
for (var i = 0; i < 3 ; i++){
if (a == 0){
return a;
}else if (a == 1){
break;
}else{
continue;
}
}
}
使う場所を間違えた場合のエラーメッセージ
次のプログラムのようにbreakをループの中ではない場所に記述したとします。 この場合エラーが発生します。
function test(a){
if (a == 0){
return a;
}else{
break;
}
}
console.log(test(1));
// エラーメッセージ(Firefox)
SyntaxError: unlabeled break must be inside loop or switch
continueをループの中ではない場所に記述した場合は
function test(a){
if (a == 0){
return a;
}else{
continue;
}
}
console.log(test(1));
// エラーメッセージ(Firefox)
SyntaxError: continue must be inside loop