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 = 2case 2: