JavaScript | レベル別練習問題:条件分岐(if / else / switch)

JavaScript
スポンサーリンク

switch文:フォールスルーを意図的に使う実用例 5選

switch文の「フォールスルー(breakを書かずに次のcaseへ進む)」は、意図的に使うと非常に便利です。
ここでは、実務でもよく出てくるパターンを5種類にまとめて、実用例と解説をつけて紹介します。


① 曜日によるスケジュール分類

(土日をまとめて処理)

let day = "Saturday";
let type = "";

switch (day) {
  case "Saturday":
  case "Sunday":
    type = "休日";
    break;
  default:
    type = "平日";
    break;
}

console.log(`${day}${type} です`);
JavaScript

解説

  • 「Saturday」「Sunday」両方とも同じ処理をしたいときに便利。
  • caseを続けて書くことで「or条件」になります。
  • if (day === "Saturday" || day === "Sunday") よりも読みやすくなります。

② 等級やレベルのランク判定

(高ランク同士をまとめる)

let rank = "S";
let message = "";

switch (rank) {
  case "S":
  case "A":
    message = "ハイランクプレイヤーです!";
    break;
  case "B":
  case "C":
    message = "中堅プレイヤーです";
    break;
  default:
    message = "初心者クラスです";
    break;
}

console.log(message);
JavaScript

解説

  • 同じようなランク分類を1つのブロックで処理できます。
  • if/else で複雑な条件を書くよりすっきり。
  • フォールスルーで条件のグルーピングが自然にできる。

③ メッセージの段階的追加(通知レベル)

let level = 3;
let alertMessage = "⚠️ 注意: ";

switch (level) {
  case 3:
    alertMessage += "緊急対応が必要です! ";
  case 2:
    alertMessage += "重要な問題があります。 ";
  case 1:
    alertMessage += "詳細を確認してください。";
    break;
  default:
    alertMessage = "問題はありません。";
}

console.log(alertMessage);
JavaScript

解説

  • 上位レベルほど下位レベルの警告も含むケースで有効。
  • level = 3 の場合、case 3 → case 2 → case 1 へフォールスルーする。
  • 実行結果: ⚠️ 注意: 緊急対応が必要です! 重要な問題があります。 詳細を確認してください。
  • breakをあえて外すことで「累積メッセージ」を作れる。

④ 季節メッセージ(複数の月をまとめる)

let month = 12;
let season = "";

switch (month) {
  case 12:
  case 1:
  case 2:
    season = "冬";
    break;
  case 3:
  case 4:
  case 5:
    season = "春";
    break;
  case 6:
  case 7:
  case 8:
    season = "夏";
    break;
  case 9:
  case 10:
  case 11:
    season = "秋";
    break;
  default:
    season = "不明";
}

console.log(`${month}月は ${season} です`);
JavaScript

解説

  • 同じ季節に属する複数の case をグループ化。
  • if文よりも見やすく、拡張もしやすい。
  • こういう範囲が明確な分類に最適。

⑤ ショートカットキー判定(複数キーの動作を共有)

let key = "ArrowLeft";
let action = "";

switch (key) {
  case "ArrowLeft":
  case "a":
    action = "← 左に移動";
    break;
  case "ArrowRight":
  case "d":
    action = "→ 右に移動";
    break;
  default:
    action = "入力なし";
}

console.log(action);
JavaScript

解説

  • **複数キー(矢印キー+WASD)**に同じ処理を割り当てたいとき。
  • ゲーム開発やショートカット操作でよく使うパターン。
  • 「同義キーのグループ化」に最適。

まとめ:フォールスルー活用の鉄則

ポイント内容
✅ 明示的なフォールスルーは便利条件をまとめたり、段階的処理に使える
⚠️ 意図しないフォールスルーは危険break を忘れるとバグになる
💬 コメントで意図を明示// fall through と書くと安全

例:コメントで意図を明示する

switch (rank) {
  case "S":
    console.log("最高ランク");
    // fall through
  case "A":
    console.log("上位ランク");
    break;
}
JavaScript
タイトルとURLをコピーしました