switch文について

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文の処理も実行されます。