I have a crazy question about Java switches.
int key = 2;
switch (key) {
case 1:
int value = 1;
break;
case 2:
value = 2;
System.out.println(value);
break;
default:
break;
}
Scenario 1 - When the key
is two it successfully print the value as 2.
Scenario 2 - When I'm going to comment value = 2
in case 2:
it squawks saying the The local variable value may not have been initialized.
Questions :
Scenario 1 : If the execution flow doesn't go to case 1:
(when the key = 2
), then how does it know the type of the value variable as int
?
Scenario 2 : If the compiler knows the type of the value variable as int
, then it must have accessed to the int value = 1;
expression in case 1:
.(Declaration and Initialization). Then why does it sqawrk When I'm going to comment value = 2
in case 2:
, saying the The local variable value may not have been initialized.