case に変数を書く
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
final int A = 1;
int b = 2;
int n = 2;
switch (n) {
case A:
System.out.println("A");
break;
case b:
System.out.println("b");
}
}
}
- A
bと出力される - B
Aと出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 実行まで進まないので、何も出力されません。
- C: case の誤りはコンパイル時に見つかります。
- D: case には定数しか書けません。final でない変数 b を case に書いているのでコンパイルエラーです。
ポイント
- case に書けるのは 定数 だけです。final の A は定数なので使えますが、普通の変数 b は使えません。
- 同じ値の case を2つ書くのもコンパイルエラーです。
「分岐文 (if、if/else、switch) の使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)