switch 式の網羅性
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
int n = 1;
String s = switch (n) {
case 1 -> "one";
case 2 -> "two";
};
System.out.println(s);
}
}
- A
oneと出力される - B
nullと出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: 網羅性の誤りはコンパイル時に見つかります。
- D: switch 式は必ず値が決まる必要があります。int では default が無いとコンパイルエラーです。
ポイント
- switch 式 は、どんな値でも必ず結果が決まらなければなりません。int では default が必要です。