JavaScript Switch

❮ 前章へ 次章へ ❯

switch 文は、様々な条件に基づいて異なったアクションを実行するために使用します。


JavaScript Switch 文

実行する多数のコードブロックの 1 つを選択するために switch 文を使用します。

構文

switch(expression) {
    case n:
        code block
        break;
    case n:
        code block
        break;
    default:
        default code block
}

これは次のように動作します:

getDay() メソッドは、曜日を 0 ~ 6 までの数値で返します。

(日曜=0, 月曜=1, 火曜=2 ..)

この例では、曜日の番号を使用して、曜日の名前を算出しています:

switch (new Date().getDay()) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;
    case 2:
        day = "Tuesday";
        break;
    case 3:
        day = "Wednesday";
        break;
    case 4:
        day = "Thursday";
        break;
    case 5:
        day = "Friday";
        break;
    case 6:
        day = "Saturday";
}

結果は次の通り:

Try it Yourself »

break キーワード

JavaScript が break キーワードに達すると、switch ブロックから抜け出します。

これにより、ブロック内のその他のコードとケーステストの実行が停止されます。

一致するものが見つかると、作業を行ったら抜け出します。その他をテストする必要はありません。

ブレークは、switch ブロック内の残りのコードの実行を「無視」するため、実行時間を大幅に節約できます。

switch ブロック内の最後のケースを break する必要はありません。


default キーワード

default キーワードは、 case に一致するものがない場合に実行するコードを指定します:

getDay() メソッドは、曜日を 0 ~ 6 の数値で返します。

今日が土曜日(6)でも日曜日(0)でもない場合は、デフォルトのメッセージを出力します:

switch (new Date().getDay()) {
    case 6:
        text = "Today is Saturday";
        break;
    case 0:
        text = "Today is Sunday";
        break;
    default:
        text = "Looking forward to the Weekend";
}

結果のテキストは次の通り:

Try it Yourself »

default case は、switch ブロックの最後の case である必要はありません:

switch (new Date().getDay()) {
    default:
        text = "Looking forward to the Weekend";
        break;
    case 6:
        text = "Today is Saturday";
        break;
    case 0:
        text = "Today is Sunday";
}
Try it Yourself »

default が switch ブロックの最後の case でない場合は、default case を break で終了してください。


共通コードブロック

異なった switch cases に同じコードを使用したい場合があります。

この例では、4 と 5 は同じコードブロックを共有し、0 と 6 は別のコードブロックを共有します:

switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "Soon it is Weekend";
        break;
    case 0:
    case 6:
        text = "It is Weekend";
        break;
    default:
        text = "Looking forward to the Weekend";
}
Try it Yourself »

練習問題による自己診断

Exercise 1 »   Exercise 2 »   Exercise 3 »   Exercise 4 » 


❮ 前章へ 次章へ ❯