Java スイッチについておかしな質問があります。
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
シナリオ 1 -key
値が 2 の場合、値が 2 として正常に
出力されます。
シナリオ 2 - コメントしようとすると、 The local variable value may not have been initializedと言ってスコークしvalue = 2
ます。case 2:
質問:
シナリオ 1: 実行フローがcase 1:
(のときにkey = 2
) に進まない場合、どのようにして値変数の型を と認識しますint
か?
シナリオ 2 : コンパイラが値変数の型を として認識している場合、コンパイラは.(宣言と初期化)の式にint
アクセスしている必要があります。では、なぜそれはsqawrk なのですか?int value = 1;
case 1:
value = 2
case 2: