【Java SE17 Silver 模擬試験】A-30

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコード断片をコンパイル、実行するとどうなりますか。

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 を設定しています。score50 の場合、case 30, 40, 50 の条件に一致しますので、"C"rank に設定されます。
また、caseの条件に合致すると、アロー演算子によりその値が返されます。その他のcaseは条件に合致しないため、評価されません。

3. 出力:

System.out.println(rank);

最後に rank の値を出力します。ここで rank の値は "C" なので、C が出力されます。

結論

したがって、実行結果は A)C が出力される です。

前の問題へ SE17_A-29

次の問題へ SE17_A-31


対象資格:Java SE17 認定資格