caseを使った条件分岐の実装とswitch文の応用をわかりやすく解説

スポンサーリンク
スポンサーリンク

caseの概要

条件分岐の選択肢 JavaScript予約語

case

概要 caseはJavaScriptのswitch文内で使用されるキーワードで、特定の条件に一致する場合に実行するコードを指定しますswitch文は複数の条件を効率的に処理するために使われます。

わかりやすく説明 caseは「この条件に当てはまったらこれを実行する」という仕組みです。

  • switch文の一部として使用され、複数の条件を効率的に評価します。
  • 条件に一致するcaseが見つかると、そのcaseのコードが実行されます。
  • 一致するcaseがなければ、オプションとしてdefaultが実行されます。

caseの基本的な使い方

以下は、switch文とcaseを使った基本的な例です。

// 基本的なswitch文の使用例
const fruit = "banana";

switch (fruit) {
    case "apple":
        console.log("リンゴです。");
        break;
    case "banana":
        console.log("バナナです。");
        break;
    case "orange":
        console.log("オレンジです。");
        break;
    default:
        console.log("不明な果物です。");
}

// 出力: バナナです。
  • switch文は変数や値を評価し、一致するcaseを実行します。
  • breakを使用して条件の処理が終了したらswitch文全体を抜けます。

複数のcaseで同じ処理を実行する

複数のcaseをまとめて同じ処理を行うことが可能です。

// 複数のcaseで同じ処理
const day = "土曜日";

switch (day) {
    case "土曜日":
    case "日曜日":
        console.log("休日です。");
        break;
    default:
        console.log("平日です。");
}

// 出力: 休日です。
  • 複数のcaseを連続して記述することで、同じ処理を実行できます。
  • breakがないと、次のcaseまで実行が続くので注意が必要です。

caseに式を使用する

case内で式を使用して動的な値を評価できます。

// 式を使用したcase
const age = 18;

switch (true) {
    case age < 13:
        console.log("子供です。");
        break;
    case age >= 13 && age < 20:
        console.log("ティーンエイジャーです。");
        break;
    case age >= 20:
        console.log("成人です。");
        break;
    default:
        console.log("年齢が不明です。");
}

// 出力: ティーンエイジャーです。
  • switch文にtrueを渡すことで、caseで条件式を評価可能です。
  • 複雑な条件を処理する場合に便利です。

注意点

  • breakの省略に注意: breakを記述しないと、次のcaseに処理が流れ込む(フォールスルー)可能性があります。
  • defaultの推奨: defaultを記述することで、すべてのcaseに一致しない場合の処理をカバーできます。
  • 一致は厳密比較: caseの値は===で比較されるため、型の違いに注意してください。

よくある質問

Q: caseif...elseの違いは何ですか?
A: switch文は、複数の値を効率的に比較する際に適しています。一方、if...elseはより複雑な条件式を扱うのに向いています。
Q: caseで文字列と数値を比較できますか?
A: いいえ、caseは厳密比較(===)を使用するため、型が異なる場合は一致しません。
Q: breakを省略しても良い場合はありますか?
A: 特定のcaseからフォールスルー(次のcaseに処理を続ける)が必要な場合にbreakを省略しますが、意図を明確にするコメントを追加するのが良いです。

まとめ

caseは、switch文内で特定の条件に基づく処理を定義するための便利なキーワードです。

  • casebreakを適切に使用して、条件分岐を効率化しましょう。
  • 複数のcaseをまとめて同じ処理を実行することが可能です。
  • defaultを記述して、すべての条件に対応できる堅牢なコードを目指しましょう。