switch文をわかりやすく解説
JavaScriptのswitch文は、条件によって異なるコードブロックを実行するために使われる制御構文です。
switch 文の基本的な構文は次のとおりです。
switch (expression) {
case value1:
// 当expression等于value1时执行的代码块
break;
case value2:
// 当expression等于value2时执行的代码块
break;
...
default:
// 当expression与之前的所有值都不匹配时执行的代码块
break;
}
switch文では、expressionが比較される式となり、caseの後ろのvalueがexpressionと比較される値となる。expressionの値が、いずれかのcaseのvalueと等しい場合、そのcaseのコードブロックが実行される。1つのcaseブロックを実行し終えたら、break文を使用してswitch文から抜ける必要がある。さもないと、プログラムは次のcaseブロックのコードを実行し続けてしまう。
switch文でexpressionの値が全てのcaseのvalueと一致しない場合は、defaultブロック内のコードが実行されます。defaultブロックは省略可能で、defaultブロックがない場合は何も実行されません。
switch ステートメントを使用する例を以下に示します。
var day = new Date().getDay();
var dayName;
switch (day) {
case 0:
dayName = "Sunday";
break;
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
default:
dayName = "Unknown";
break;
}
console.log("Today is " + dayName);
上記の例では、new Date().getDay()で現在の日付の曜日を取得し、switch文で曜日によってdayName変数に代入し、代入された結果が出力されます。
ただし、switch内での比較は厳格等価演算子(===)で行われるので、値の型も値の比較も等しくなる必要があること注意。非厳格等価比較をしたい場合は、switch (true) を switch 文の式として利用し、case 内の value を比較式にするとよい。
要約すると、switch文はさまざまな条件に基づいて異なるコードブロックを実行するための簡潔な方法を提供し、特定の値に基づいて分岐処理を行う必要がある場合に適しています。