switch 式をそのまま引数に使う
出力はどれか。
public class Main {
public static void main(String[] args) {
int level = 2;
System.out.println("Lv." + switch (level) {
case 1 -> "Easy";
case 2 -> "Normal";
default -> "Hard";
});
}
}
- A
Lv.Normal - B
Lv.2 - C
Lv.Hard - D コンパイルエラーになる
正解と解説を見る
正解: A
- A: level は 2 なので "Normal" が switch 式の値になり、"Lv." と連結されます。
- B: switch 式の値は case の右側の文字列で、level の数値そのものではありません。
- C: level は 2 なので case 2 に一致し、default には進みません。
- D: switch 式は値なので、式の一部 (引数の中) に直接書けます。
ポイント
- switch 式は値なので、メソッドの引数や式の一部として直接書けます。