Java では、変数のスコープが case ブロックではなく switch ブロックに限定されているのはなぜですか。例えば、
// Scope limited to a switch block
switch (number) {
case 1:
String result = "...";
break;
case 2:
result = "...";
break;
上記の例では、結果は一度だけ宣言する必要があります。2 回宣言すると、Duplicate local variable
メッセージが表示されます。
私の質問は次のとおりです。プログラムは、result
ifを宣言したことをどのように認識しますかnumber = 2
? (変数に分類されcase 1
ず、変数を宣言しません...または宣言しますか?)
編集:
みんなを混乱させてしまうかもしれません。変数のスコープを制限する方法は理解していますが、私の質問は次のとおりです。結果がケースに該当しない場合、Javaは結果が宣言されていることをどのように認識しますか?