問題
次のコード断片をコンパイル、実行するとどうなりますか。
int score = 50;
String rank = switch(score) {
case 10, 20 -> "D";
case 30, 40, 50 -> "C";
case 60,70,80 -> "B";
case 90, 100 -> "A";
};
System.out.println(rank);
選択肢
A)C が出力される
B)BCA が出力された後、 NullPointerException がスローされる
C)コンパイルエラーになる
D)BCA が出力される
E)C が出力された後、 NullPointerException がスローされる
F)A が出力される
解答
A)C が出力される
B)BCA が出力された後、 NullPointerException がスローされる
C)コンパイルエラーになる
D)BCA が出力される
E)C が出力された後、 NullPointerException がスローされる
F)A が出力される
解説
このコードをコンパイル、実行すると、A)C が出力される という結果になります。
1. スコアの設定
int score = 50;
2. switch 表現の使用
String rank = switch(score) {
case 10, 20 -> "D";
case 30, 40, 50 -> "C";
case 60, 70, 80 -> "B";
case 90, 100 -> "A";
};
ここでは switch
式を使って score
に基づいて rank
を設定しています。score
が 50
の場合、case 30, 40, 50
の条件に一致しますので、"C"
が rank
に設定されます。
また、caseの条件に合致すると、アロー演算子によりその値が返されます。その他のcaseは条件に合致しないため、評価されません。
3. 出力:
System.out.println(rank);
最後に rank
の値を出力します。ここで rank
の値は "C"
なので、C
が出力されます。
結論
したがって、実行結果は A)C が出力される です。
対象資格:Java SE17 認定資格