JavaScriptのswitch文とは
switchはif文のような条件文です。switchは、指定した式の戻り値に基づいて複数のコードブロックのうちの1つを実行したい場合に便利です。
基本的な構文は以下の通りです。
switch(条件式){
case 1:
//処理1
break;
case 2:
//処理2
break;
case n:
//処理n
break;
default:
//いずれのcaseにも当てはまらなかった場合の処理
}
上記の構文にあるように、switch文には式またはリテラル値が含まれます。
式は評価されると値を返します。switchは複数のケースを含むことができ、各ケースは特定の値を表します。
caseの値がswitch式の戻り値と等しい場合、特定のcaseに属するコードが実行されます。また、どのケースもswitch式の値と一致しない場合、デフォルトのケースが実行されます。
let a = 2;
switch (a) {
case 1:
console.log('case1 です');
break;
case 2:
console.log("case2 です");
break;
case 3:
console.log("case3 です");
break;
case 4:
console.log("case4 です");
break;
default:
console.log("default case です");
}
上の例では、switch文にリテラル値が式として含まれています。そのため、リテラル値にマッチしたケース(上の例ではケース2)が実行されます。
switch文が式の場合
switch文は式を含むこともできます。その場合、式の結果にマッチするケースが実行されます。
let a = 2;
switch (a/2) {
case 1:
console.log("case 1 です");
break;
case 2:
console.log("case 2 です");
break;
case 3:
console.log("case 3 です");
break;
case 4:
console.log("case 4 です");
break;
default:
console.log("default case です");
}
上の例では、switch文にa / 2という式があり、これが1を返します(a = 2だから)。つまり、上の例ではケース1が実行されることになります。
switchには、文字列型の式も入れることができます。
let name = "Tanaka";
switch (name) {
case "Tanaka":
console.log("This is Tanaka");
case "Sato":
console.log("This is Sato");
break;
case "Ohno":
console.log("This is Ohno");
break;
default:
console.log("Unknown Person");
break;
}
複数のcaseをまとめる場合
複数のケースをswitch文で組み合わせることもできます。
let a = 2;
switch (a) {
case 1:
case 2:
case 3:
console.log("case 1, 2, 3");
break;
case 4:
console.log("case 4");
break;
default:
console.log("default case");
}