JavaScript Switch 文

switch 条件に基づいて異なるアクションを実行するためのステートメントです。

JavaScript Switch 文

使用してください switch 条件に基づいて実行する必要のあるコードブロックのうちの1つを選択するために使用されるステートメントです。

文法

switch(式) {
     case n:
        コードブロック
        break;
     case n:
        コードブロック
        break;
     デフォルト:
        デフォルトコードブロック
} 

コードの説明:

  • switch式を一度計算します
  • 式の値を各caseの値と比較します
  • 一致があれば、関連するコードを実行します

インスタンス

getDay()メソッドは0から6の範囲の週名の数字(weekday number)を返します。

(Sunday=0, Monday=1, Tuesday=2 ..)

この例では、週の名前を計算するために週名の数字を使用しています:

switch (new Date().getDay()) {
    case 0:
        day = "日曜日";
        break;
    case 1:
        day = "月曜日";
         break;
    case 2:
        day = "火曜日";
         break;
    case 3:
        day = "水曜日";
         break;
    case 4:
        day = "木曜日";
         break;
    case 5:
        day = "金曜日";
         break;
    case 6:
        day = "土曜日";
} 

結果は:


自分で試してみてください

breakキーワードに

JavaScriptが break キーワード。それはswitchコードブロックから飛び出します。

これにより、コードブロック内のさらに多くのコードの実行およびcaseテストが停止します。

一致が見つかり、タスクが完了した場合、ランダムに実行を中断(break)します。さらなるテストは必要ありません。

break 大量の実行時間を節約できます。なぜなら、switchコードブロック内の他のコードの実行を「無視」するからです。

switchコードブロックの最後のcaseを中断する必要はありません。コードブロックはここで自然に終了します。

デフォルトキーワード

デフォルト キーワードは、caseが一致しない場合に実行されるコードを指定します:

インスタンス

getDay() メソッドは0から6の数字の週名を返します。

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

switch (new Date().getDay()) {
    case 6:
        text = "今日は土曜日";
        break; 
    case 0:
        text = "今日は日曜日";
        break; 
    デフォルト: 
        text = "週末を楽しみにしてる〜";
} 

textの結果は:


自分で試してみてください

デフォルトのcaseはswitchコードブロックの最後のcaseでない必要はありません:

インスタンス

switch (new Date().getDay()) {
    デフォルト: 
        text = "週末を楽しみにしてる!";
         break;
    case 6:
        text = "今日は土曜日";
        break; 
    case 0:
        text = "今日は日曜日";
} 

自分で試してみてください

もし デフォルト switchコードブロックの最後のcaseでない場合、デフォルトケースを終了するためにbreakを使用を忘れないでください。

一般的なコードブロック

時には同じコードを使用するための異なるcaseが必要になることがあります。

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

インスタンス

switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "週末が近づいてる:)";
        break; 
    case 0:
    case 6:
        text = "今日は週末〜";
         break;
    デフォルト: 
        text = "週末を楽しみにしてる!";
} 

自分で試してみてください

Switchingの詳細

同じ case 値に複数の case が一致する場合、最初の case を選択します。

一致する case が見つからない場合、プログラムはデフォルトの label を使用し続けます。

デフォルトの label が見つからない場合、プログラムは switch の次の文を実行し続けます。

厳密な比較

Switch case は厳密な比較(===)。

値は一致するタイプと同じでなければなりません。

厳密な比較は、操作数が同じタイプに属する場合にのみ true になります。

この例では、x は一致しません:

インスタンス

var x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  デフォルト:
    text = "値が見つかりません";
}

自分で試してみてください

教科書

さらに詳細については JavaScript Switch 文の知識がある場合は、JavaScript 高級トレーニングの関連内容を読んでください:

ECMAScript switch 文
switch 文は if 文の兄弟文です。このセクションでは、switch 文の使用法と Java の switch 文との違いについて説明します。