Как компилятор Java обрабатывает следующий блок переключателей? Какова область действия переменной «b»?Переключатель Java: объявление переменной и область действия
Обратите внимание, что переменная 'b' объявляется только в первой ветви оператора switch. Попытка объявить его во второй ветви также приводит к ошибке «дублирования локальной переменной».
int a = 3;
switch(a) {
case 0:
int b = 1;
System.out.println("case 0: b = " + b);
break;
case 1:
// the following line does not compile: b may not have been initialized
// System.out.println("case 1 before: b = " + b);
b = 2;
System.out.println("case 1 after: b = " + b);
break;
default:
b = 7;
System.out.println("default: b = " + b);
}
Примечание: приведенный выше код компилируется с помощью компилятора java 1.6.
Ответил на ваш вопрос. – darrengorman