Tenho uma pergunta maluca sobre os switches Java.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Cenário 1 - Quando o key
é dois, ele imprime com sucesso o valor como 2.
Cenário 2 - Quando vou comentar value = 2
, case 2:
ele grita dizendo que o valor da variável local pode não ter sido inicializado .
Questões:
Cenário 1: Se o fluxo de execução não vai para case 1:
(quando o key = 2
), como ele sabe o tipo da variável de valor como int
?
Cenário 2: Se o compilador conhece o tipo da variável de valor como int
, então ele deve ter acessado a int value = 1;
expressão em case 1:
. (Declaração e Inicialização). Então, por que faz isso sqawrk Quando eu vou comentar value = 2
no case 2:
, dizendo que o O valor variável local pode não ter sido inicializado .