アロー構文の switch 文
出力はどれか。
public class Main {
public static void main(String[] args) {
String cmd = "end";
switch (cmd) {
case "start" -> System.out.print("S");
case "stop", "end" -> System.out.print("E");
}
System.out.print("!");
}
}
- A
E! - B
SE! - C
! - D コンパイルエラーになる
正解と解説を見る
正解: A
- A: "end" は
case "stop", "end"に一致して E を出力し、その後 ! が出力されます。 - B: アロー構文はフォールスルーしないので、S は出力されません。
- C: "end" は2つ目の case に一致するので E が出力されます。
- D: switch 文 (値を返さない) でもアロー構文は使えます。網羅しなくてもかまいません。
ポイント
- アロー構文は値を返さない switch 文でも使えます。switch 文なので、すべての値を網羅しなくてもかまいません。