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 key
es dos se imprime con éxito el valor 2.
Escenario 2 - Cuando voy a comentar value = 2
en 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 = 2
en case 2:
, diciendo que el valor de la variable local no puede haber sido inicializado .