では、switch文の練習問題集(レベル別:初級 → 中級 → 実務応用)を紹介します。
すべて Java 初心者向けに、ステップ式・解答例つきで解説します。
【初級編】基本ルールをマスターしよう!
問題1:数値で分岐
次のプログラムを完成させましょう。
変数 num が 1 なら「りんご」、2 なら「ばなな」、3 なら「みかん」と出力してください。
それ以外の数値なら「不明なフルーツ」と出力します。
int num = 2;
// ここに switch 文を追加
Java✅解答例
int num = 2;
switch (num) {
case 1:
System.out.println("りんご");
break;
case 2:
System.out.println("ばなな");
break;
case 3:
System.out.println("みかん");
break;
default:
System.out.println("不明なフルーツ");
}
Java📝ポイント:
defaultは「どれにも当てはまらないとき」用。- 各
caseのあとにはbreak;を忘れずに!
問題2:break を忘れるとどうなる?
次のプログラムの出力を考えてみましょう👇
int num = 2;
switch (num) {
case 1:
System.out.println("A");
case 2:
System.out.println("B");
case 3:
System.out.println("C");
}
Java✅答え:
B
C
📝理由:case 2 に一致後、break; がないのでそのまま下に流れ(フォールスルー)、case 3 の処理も実行されます。
問題3:複数の case で同じ処理
変数 month が 3, 4, 5 のとき "春"、6, 7, 8 のとき "夏"、9, 10, 11 のとき "秋"、12, 1, 2 のとき "冬" を表示してください。
int month = 7;
// switch文を使って季節を表示
Java✅解答例
int month = 7;
switch (month) {
case 3: case 4: case 5:
System.out.println("春");
break;
case 6: case 7: case 8:
System.out.println("夏");
break;
case 9: case 10: case 11:
System.out.println("秋");
break;
case 12: case 1: case 2:
System.out.println("冬");
break;
default:
System.out.println("不明");
}
Java📝ポイント:
連続した case は「同じ処理をまとめる」定番パターンです。
【中級編】実用的な使い方を練習!
問題4:スコア判定プログラム
変数 score に点数(0〜100)が入ります。switch文を使って次のように評価を表示してください。
| 範囲 | 評価 |
|---|---|
| 90〜100 | A |
| 80〜89 | B |
| 70〜79 | C |
| 60〜69 | D |
| それ未満 | F |
✅ヒント
整数の割り算 score / 10 を使うと範囲をまとめられます!
✅解答例
int score = 83;
switch (score / 10) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("F");
}
Java📝ポイント:switch (score / 10) によって、90台は9、80台は8とまとめて判定できます。
問題5:String の分岐
変数 command が次のどれかの文字列を取ります:
"start"→ 「開始します」"stop"→ 「停止します」"reset"→ 「リセットします」
それ以外は「不明なコマンド」と出してください。
✅解答例
String command = "reset";
switch (command) {
case "start":
System.out.println("開始します");
break;
case "stop":
System.out.println("停止します");
break;
case "reset":
System.out.println("リセットします");
break;
default:
System.out.println("不明なコマンド");
}
Java📝ポイント:
Java7以降では String 型でも switch が使えるようになりました。
問題6:曜日で分岐(実務によくある)
文字列 day に "Mon", "Tue", … "Sun" が入ります。
"Sat"or"Sun"→ 「休日です」- その他 → 「平日です」
✅解答例
String day = "Sun";
switch (day) {
case "Sat":
case "Sun":
System.out.println("休日です");
break;
default:
System.out.println("平日です");
}
Java📝ポイント:
複数の条件をまとめたいときは、case を続けて書くとスッキリ。
【上級/実務応用編】
問題7:enum(列挙型)で交通信号を表す
列挙型 TrafficLight を使って次のような判定をしてください。
| 信号 | 表示するメッセージ |
|---|---|
| RED | 止まれ |
| YELLOW | 注意 |
| GREEN | 進め |
✅解答例
enum TrafficLight { RED, YELLOW, GREEN }
public class Main {
public static void main(String[] args) {
TrafficLight light = TrafficLight.YELLOW;
switch (light) {
case RED:
System.out.println("止まれ");
break;
case YELLOW:
System.out.println("注意");
break;
case GREEN:
System.out.println("進め");
break;
}
}
}
Java📝ポイント:enumは定数グループを安全に扱えるので、実務で非常によく使われます。
(文字列よりタイプミスが起きにくい!)
問題8:メニュー選択システム(模擬アプリ)
ユーザーが入力したメニュー番号によって処理を分けましょう。
| 入力値 | 出力 |
|---|---|
| 1 | 商品一覧を表示します |
| 2 | 商品を検索します |
| 3 | 購入手続きに進みます |
| 0 | 終了します |
| その他 | 無効な番号です |
✅解答例
int menu = 3;
switch (menu) {
case 1:
System.out.println("商品一覧を表示します");
break;
case 2:
System.out.println("商品を検索します");
break;
case 3:
System.out.println("購入手続きに進みます");
break;
case 0:
System.out.println("終了します");
break;
default:
System.out.println("無効な番号です");
}
Java📝実務での応用ポイント:
- コンソールアプリのメニュー制御などにぴったり。
- GUIでも「ボタンIDごとに処理を分ける」場面で同様の考え方が使われます。
問題9:switch と if の使い分けを考える
次のような条件分岐を switch に変えて書き直してみましょう。
if (grade.equals("A") || grade.equals("B")) {
System.out.println("合格");
} else if (grade.equals("C")) {
System.out.println("再試験");
} else {
System.out.println("不合格");
}
Java✅解答例
String grade = "B";
switch (grade) {
case "A":
case "B":
System.out.println("合格");
break;
case "C":
System.out.println("再試験");
break;
default:
System.out.println("不合格");
}
Java📝考え方:
複数の固定値(A, B, Cなど)で分岐したいときは switch、
範囲や条件式(>、<など)を使いたいときは if が向いています。
まとめチェックリスト
| チェック項目 | 理解できた? |
|---|---|
各 case のあとに break; が必要な理由を説明できる | |
複数の case で同じ処理をまとめられる | |
default が「どれにも当てはまらないとき」の処理である | |
switch に使える型(int / String / enum など)を言える | |
if と switch の使い分けができる |
