Tengo una pregunta loca sobre los conmutadores de Java.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Escenario 1 - Cuando el keyes dos se imprime con éxito el valor 2.
Escenario 2 - Cuando voy a comentar value = 2en el case 2:que chilla diciendo que el valor de la variable local no puede haber sido inicializado .
Preguntas:
Escenario 1: Si el flujo de ejecución no va a case 1:(cuando key = 2), ¿cómo sabe el tipo de variable de valor como int?
Escenario 2: Si el compilador conoce el tipo de variable de valor como int, entonces debe haber accedido a la int value = 1;expresión en case 1:. (Declaración e Inicialización). Entonces ¿por qué lo hace sqawrk Cuando voy a comentar value = 2en case 2:, diciendo que el valor de la variable local no puede haber sido inicializado .