J'ai une question folle sur les commutateurs Java.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Scénario 1 - Lorsque le keyest deux , il imprime avec succès la valeur 2.
Scénario 2 - Quand je vais commenter value = 2dans case 2:ce gloussements dire la La valeur variable locale peut ne pas avoir été initialisé .
Questions:
Scénario 1: Si le flux d'exécution ne va pas à case 1:(quand le key = 2), alors comment connaît-il le type de la variable de valeur int?
Scénario 2: Si le compilateur connaît le type de la variable de valeur comme int, alors il doit avoir accédé à l' int value = 1;expression dans case 1:. (Déclaration et initialisation). Alors pourquoi est - ce sqawrk Quand je vais commenter value = 2en case 2:disant la La valeur variable locale peut ne pas avoir été initialisé .