ここでは「if-else → switch 書き換え」のレベルアップ練習問題(メニュー処理編)を紹介します。
実際に入力を使う形で、コンソールメニューアプリ風に練習できます。
レベルアップ問題:入力値で動くメニュー処理
目的
ユーザーがメニュー番号を入力したときに、
選んだ処理を実行するプログラムを if-else文 と switch文 の両方で書いてみよう。
【問題】
仕様
- メニューを表示する
===== メニュー ===== 1: データ登録 2: データ更新 3: データ削除 4: 終了 ===================== - ユーザーが数字を入力する
- 入力に応じてメッセージを表示する
- 1 → 「登録処理を開始します」
- 2 → 「更新処理を開始します」
- 3 → 「削除処理を開始します」
- 4 → 「終了します」
- 上記以外 → 「不正な入力です」
解答例①:if-else版
import java.util.Scanner;
public class MenuIfExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("===== メニュー =====");
System.out.println("1: データ登録");
System.out.println("2: データ更新");
System.out.println("3: データ削除");
System.out.println("4: 終了");
System.out.println("=====================");
System.out.print("番号を入力してください: ");
int select = sc.nextInt();
if (select == 1) {
System.out.println("登録処理を開始します");
} else if (select == 2) {
System.out.println("更新処理を開始します");
} else if (select == 3) {
System.out.println("削除処理を開始します");
} else if (select == 4) {
System.out.println("終了します");
} else {
System.out.println("不正な入力です");
}
sc.close();
}
}
Java解答例②:switch版(書き換え)
import java.util.Scanner;
public class MenuSwitchExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("===== メニュー =====");
System.out.println("1: データ登録");
System.out.println("2: データ更新");
System.out.println("3: データ削除");
System.out.println("4: 終了");
System.out.println("=====================");
System.out.print("番号を入力してください: ");
int select = sc.nextInt();
switch (select) {
case 1:
System.out.println("登録処理を開始します");
break;
case 2:
System.out.println("更新処理を開始します");
break;
case 3:
System.out.println("削除処理を開始します");
break;
case 4:
System.out.println("終了します");
break;
default:
System.out.println("不正な入力です");
}
sc.close();
}
}
Java学習ポイント
| 観点 | if-else | switch |
|---|---|---|
| 条件の書き方 | if (x == 1) のように明示的 | case 1: でスッキリ |
| 処理の流れ | 条件が多いとネストが深くなる | 構造がシンプルで見やすい |
| 使いやすさ | 数値・比較式に柔軟 | 特定の値ごとの分岐に最適 |
発展練習(自作してみよう)
レベル2:
メニューを繰り返し表示して、4を選ぶまでループするようにする。
(→ do-while と組み合わせて練習)
レベル3:
入力を文字列(例: "add", "update", "delete", "exit")で受け取り、switch (文字列) に書き換える。
