JavaScriptには、条件に基づいて異なるアクションを実行するために使用できる複数の方法があります。その中でも、switch
文は、複数の値のいずれかに基づいて実行するアクションを指定するための構文です。以下に、switch
文について説明します。
switch
文の基本的な構文は以下のようになります。
switch(expression) {
case value1:
// 実行するアクション
break;
case value2:
// 実行するアクション
break;
case value3:
// 実行するアクション
break;
default:
// 上記の値以外の場合に実行するアクション
break;
}
switch
文の条件式(expression
)は、比較される値を表します。各case
ブロックの値は、条件式と厳密に一致する場合に、それに続くブロックのアクションが実行されます。break
ステートメントは、各case
ブロックの末尾に必要であり、そのブロックの実行を終了し、次のcase
ブロックまたはdefault
ブロックに移動します。default
ブロックは、上記の値に一致するものがない場合に実行されます。
以下は、switch
文を使用した例です。
let fruit = 'apple';
switch (fruit) {
case 'banana':
console.log('This is a banana.');
break;
case 'apple':
console.log('This is an apple.');
break;
case 'orange':
console.log('This is an orange.');
break;
default:
console.log('This is not a fruit I know.');
break;
}
上記の例では、fruit
の値がapple
であるため、case 'apple'
に該当するブロックが実行されます。console.log('This is an apple.')
が呼び出され、コンソールにThis is an apple.
が表示されます。
switch
文は、多くの場合、複数のif
文よりもコンパクトで読みやすいコードを書くことができます。ただし、必ずしもif
文よりもパフォーマンスが良いわけではありません。
breakを使用しない場合
break;を使用しない場合は、該当するcase文の処理が終了した後に、次のcase文の処理も実行されます。以下は、break;を使用しないswitch文のサンプルコードです。
let day = "Monday";
switch (day) {
case "Monday":
console.log("今日は月曜日です。");
case "Tuesday":
console.log("今日は火曜日です。");
case "Wednesday":
console.log("今日は水曜日です。");
case "Thursday":
console.log("今日は木曜日です。");
case "Friday":
console.log("今日は金曜日です。");
default:
console.log("週末です。");
}
上記コードを実行すると、以下のように出力されます。
今日は月曜日です。
今日は火曜日です。
今日は水曜日です。
今日は木曜日です。
今日は金曜日です。
週末です。
上記コードでは、dayの値が”Monday”であるため、最初のcase文が該当します。しかし、break;を使用していないため、最初のcase文の処理が終了した後も、次のcase文の処理が実行されます。そのため、全てのcase文の処理が実行され、最後にdefault文の処理も実行されます。