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

