Ho una domanda pazza sugli switch Java.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Scenario 1 - Quando il keyè due esso stampa con successo il valore come 2.
Scenario 2 - Quando ho intenzione di commentare value = 2in case 2:esso squawks dicendo che la Il valore della variabile locale non sia stato inizializzato .
Domande:
Scenario 1: se il flusso di esecuzione non va a case 1:(quando il key = 2), come fa a conoscere il tipo di variabile di valore come int?
Scenario 2: se il compilatore conosce il tipo di variabile del valore come int, deve aver eseguito l'accesso int value = 1;all'espressione in case 1:. (Dichiarazione e inizializzazione). E allora perché lo fa sqawrk Quando ho intenzione di commentare value = 2in case 2:, dicendo che il Il valore della variabile locale non può essere stato inizializzato .