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 = 2no case 2:, dizendo que o O valor variável local pode não ter sido inicializado .