Answer 03-4
Javaのswitch文とは?確認問題の模範解答と解説

このページは、Javaのswitch文とは?決まった値ごとに処理を分ける書き方の確認問題を見直すためのページです。
caseの値だけでなく、breakによってどこで処理を抜けるかも確認してください。
問題1:曜日を表示する
回答例
switch (day) {
case 1:
System.out.println("月曜日");
break;
case 2:
System.out.println("火曜日");
break;
case 3:
System.out.println("水曜日");
break;
default:
System.out.println("対象外");
}
dayは整数型なので、caseには文字列の"1"ではなく整数の1を書きます。一致した曜日を1つだけ表示するため、各caseの処理の後にbreak;を書きます。
問題2:商品コードで分岐する
回答例
switch (productCode) {
case "A":
System.out.println("ノートPC");
break;
case "B":
System.out.println("マウス");
break;
case "C":
System.out.println("キーボード");
break;
default:
System.out.println("未登録");
}
productCodeはString型なので、caseの値も"A"のような文字列で指定します。"A"と"a"は別の値です。A・B・Cのどれにも一致しない場合はdefaultを実行します。
問題3:範囲判定に適した書き方
この要件にはif文が適しています。「80以上」は80という値との一致ではなく、80から上の範囲を表すためです。
回答例
if (score >= 80) {
System.out.println("合格");
} else {
System.out.println("再挑戦");
}
switch文は、メニュー番号1・2・3や商品コードA・B・Cのような決まった値との一致に向いています。大小関係、範囲、複数の条件を扱う場合はif文を選びます。
問題4:breakがないコードの実行結果
B C
numberは2なので、case 2:から処理を始めて「B」を表示します。その後にbreak;がないため、次のcase 3:の中へ続けて進み、「C」も表示します。値が1ではないため「A」は表示されません。