У меня сумасшедший вопрос о переключателях 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 - Когда я буду комментировать value = 2в case 2:это коды ответчика говоря , что значение локальной переменной не может быть инициализирован .
Вопросы:
Сценарий 1: Если поток выполнения не переходит case 1:(когда key = 2), то как он узнает тип переменной значения как int?
Сценарий 2: Если компилятор знает тип переменной значения как int, то он должен иметь доступ к int value = 1;выражению в case 1:. (Объявление и инициализация). Тогда почему это sqawrk Когда я буду комментировать value = 2в case 2:, говоря , что Значение локальной переменной не может быть инициализирован .