Java | if-else → switch 書き換え練習問題集

Java Java
スポンサーリンク

if-else から switch への書き換えは、
「条件の構造を整理して頭の中をスッキリさせる」最高の練習です。

ここでは、初級〜中級レベルの練習問題(全6問)+解答 をセットで紹介します。
すべて Java 初心者でも実行できる内容です。


【問題1】基本:数字で分ける

int num = 3;

if (num == 1) {
    System.out.println("りんご");
} else if (num == 2) {
    System.out.println("みかん");
} else if (num == 3) {
    System.out.println("ぶどう");
} else {
    System.out.println("なし");
}
Java

🔍【書き換えヒント】

  • 値が「1」「2」「3」など固定 → switch にぴったり

✅【解答例】

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

【問題2】複数の条件が同じ処理

int day = 6;

if (day == 6 || day == 7) {
    System.out.println("週末です");
} else {
    System.out.println("平日です");
}
Java

🔍【書き換えヒント】

  • 「6または7」は case を並べればOK!

✅【解答例】

switch (day) {
    case 6:
    case 7:
        System.out.println("週末です");
        break;
    default:
        System.out.println("平日です");
}
Java

【問題3】文字列(String)で分岐

String animal = "cat";

if (animal.equals("dog")) {
    System.out.println("いぬ");
} else if (animal.equals("cat")) {
    System.out.println("ねこ");
} else if (animal.equals("bird")) {
    System.out.println("とり");
} else {
    System.out.println("その他");
}
Java

🔍【書き換えヒント】

  • Java 7 以降では switchString が使える!

✅【解答例】

switch (animal) {
    case "dog":
        System.out.println("いぬ");
        break;
    case "cat":
        System.out.println("ねこ");
        break;
    case "bird":
        System.out.println("とり");
        break;
    default:
        System.out.println("その他");
}
Java

【問題4】成績(範囲を変換して対応)

int score = 83;

if (score >= 90) {
    System.out.println("A");
} else if (score >= 80) {
    System.out.println("B");
} else if (score >= 70) {
    System.out.println("C");
} else {
    System.out.println("F");
}
Java

🔍【書き換えヒント】

  • 範囲は switch では直接できない。
  • なので「十の位」でまとめる(score / 10)!

✅【解答例】

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;
    default:
        System.out.println("F");
}
Java

【問題5】列挙型(enum)で状態を分岐

String signal = "YELLOW";

if (signal.equals("RED")) {
    System.out.println("止まれ");
} else if (signal.equals("YELLOW")) {
    System.out.println("注意");
} else if (signal.equals("GREEN")) {
    System.out.println("進め");
}
Java

🔍【書き換えヒント】

  • enum にすると型安全に書ける(実務ではこちら推奨)

✅【解答例】

enum Signal { RED, YELLOW, GREEN }

Signal s = Signal.YELLOW;

switch (s) {
    case RED:
        System.out.println("止まれ");
        break;
    case YELLOW:
        System.out.println("注意");
        break;
    case GREEN:
        System.out.println("進め");
        break;
}
Java

【問題6】月ごとの日数(やや応用)

int month = 4;

if (month == 1 || month == 3 || month == 5 ||
    month == 7 || month == 8 || month == 10 || month == 12) {
    System.out.println("31日あります");
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
    System.out.println("30日あります");
} else if (month == 2) {
    System.out.println("28日または29日です");
} else {
    System.out.println("不正な月です");
}
Java

🔍【書き換えヒント】

  • 同じ処理の月を case でまとめる!

✅【解答例】

switch (month) {
    case 1: case 3: case 5: case 7:
    case 8: case 10: case 12:
        System.out.println("31日あります");
        break;
    case 4: case 6: case 9: case 11:
        System.out.println("30日あります");
        break;
    case 2:
        System.out.println("28日または29日です");
        break;
    default:
        System.out.println("不正な月です");
}
Java

まとめ:書き換えのコツ

if-else の形switch にするときの考え方
== 比較が連続そのまま case 値: に書き換え
`
>=, <= など範囲条件加工して値をグループ化(例:score/10
String 比較(equals)そのまま case "文字列"
定義済みの状態値enum に変換して switch
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました