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