Область действия переменной в случае переключателя [дубликат]
На этот вопрос уже есть ответ здесь:
Объявление и инициализация переменных в переключателях Java 5 ответовЯ думаю, что я не понимаю, как работает прицел в корпусе коммутатора.
Может кто-нибудь объяснить мне, почему первый код не компилируется, а второй -?
Код 1:
int key = 2;
switch (key) {
case 1:
String str = "1";
return str;
case 2:
String str = "2"; // duplicate declaration of "str" according to Eclipse.
return str;
}
Код 2:
int key = 2;
if (key == 1) {
String str = "1";
return str;
} else if (key == 2) {
String str = "2";
return str;
}
Почему область действия переменной "str" не содержится в случае 1?
Если я пропущу объявление случая 1, переменная "str" никогда не будет объявлена ...