Java Silver SE17対策:switch文の応用と試験で問われる落とし穴まとめ
Javaの条件分岐の中でも、switch 文は「特定の値に応じて処理を分けたい場面」でコードをすっきり整理できる便利な構文です。
ただし、基本構文だけでなく「複数のcaseをまとめる」「breakの扱い」「defaultの位置」など、注意すべきポイントも多く、Java Silver SE17の試験でも頻出です。
この記事では、switch文の応用と試験で問われやすい落とし穴を、納得感重視で体系的に整理していきます。
🔸 複数のcaseをまとめる(caseのグルーピング)
同じ処理を複数の値に対応させたい場合、case を連続して記述することでまとめることができます。
String day = "SATURDAY";
switch (day) {
case "SATURDAY":
case "SUNDAY":
System.out.println("週末です。ゆっくり休みましょう!");
break;
case "MONDAY":
System.out.println("週の始まりです。気合い入れていきましょう!");
break;
default:
System.out.println("今日も一日頑張りましょう!");
}
✅ ポイント
-
SATURDAYとSUNDAYの両方が同じ処理に落ちるように、caseを並べてbreakを1つだけ書く -
if文で複数条件を書くよりも、switch文の方が視認性は良い
🔸 フォールスルーの挙動と注意点
switch 文では、break を書かないと次の case に処理が「落ちる」=実行されてしまいます。これを「フォールスルー」と呼びます。
int score = 90;
switch (score) {
case 100:
System.out.println("満点です!");
case 90:
System.out.println("とてもよくできました!");
default:
System.out.println("お疲れさまでした!");
}
✅ 出力結果
とてもよくできました!
お疲れさまでした!
⚠️ 注意
-
score = 90のとき、case 90に一致 →breakがないためdefaultにも処理が落ちる - 意図的にフォールスルーを使う場面もあるが、試験では「うっかりミス」として問われることが多い
🔸 defaultの役割と書く位置
default は、どの case にも一致しなかったときに実行される処理です。必須ではありませんが、書いておくことで予期せぬ値にも対応できます。
String color = "BLUE";
switch (color) {
case "RED":
System.out.println("赤です");
break;
default:
System.out.println("その他の色です");
}
✅ defaultの位置は自由
switch (color) {
default:
System.out.println("その他の色です");
break;
case "RED":
System.out.println("赤です");
break;
}
どちらも動作は同じですが、可読性の観点から default は最後に書くのが一般的です。
🔸 switch文で使える型と制限
Javaでは、switch 文に使える型が決まっています。
| 使用可能な型 | 使用不可な型 |
|---|---|
int, byte, short, char
|
boolean(true/false) |
String(Java SE7以降) |
float, double
|
enum(列挙型) |
List, Mapなどの参照型 |
✅ 試験対策ポイント
-
booleanはswitch文で使えない →if文を使うべき -
StringやenumはJava Silver SE17でよく出題される
🔸 まとめ
- 複数の case をまとめることで、コードの重複を減らせる
- break の有無で処理の流れが大きく変わる → フォールスルーに注意
- default は保険として書いておくと安心
- 使用できる型に制限がある → 試験では「使えない型」を問われやすい
次回は、enum と switch 文の組み合わせや、より実践的な分岐設計について掘り下げていきます。納得感と体系的な理解をさらに深めて、Java Silver SE17合格に一歩前進したいと思います!