public class Main {
public static void main(String[] args) {
int x = 2;
String size = switch (x) {
case 1 -> "Small";
case 2 -> "Medium";
case 3 -> "Large";
};
System.out.println(size);
}
}
選択肢
- あなたの回答
- 正解
正解
C. switch 式で default ラベルが省略されているため、コンパイルエラーになる
詳細解説
Javaの switch 式(値を返す switch)では、想定されるすべての値を網羅(全網羅)している必要があります。変数 x は int 型であり、case ラベルで 1, 2, 3 しかカバーしておらず、その他すべての数値をカバーする default ラベルが存在しないため、コンパイルエラーが発生します。
なぜ他の選択肢が違うのか
- switch 式の網羅性が満たされていないため、正常にコンパイルを通過しません。
- コードがコンパイルエラーになるため、実行結果としてこの文字列が出力されることはありません。
- コンパイルエラーが発生するため、実行時に例外がスローされる段階まで進みません。
罠ポイント
値を返す switch 式では、全てのパターンの網羅(一般的には default ラベルの定義)が必須となり、漏れがあるとコンパイルエラーになる点です。