У мене є божевільне запитання про перемикачі 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:
, кажучи , що Значення локальної змінної не може бути инициализирован .