Java | switch文 練習問題セット

Java Java
スポンサーリンク

では、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〜100A
80〜89B
70〜79C
60〜69D
それ未満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 など)を言える
ifswitch の使い分けができる

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました