¿Cómo maneja el compilador Java el siguiente bloque de conmutadores? ¿Cuál es el alcance de la variable 'b'?Conmutador Java: declaración de variable y alcance
Tenga en cuenta que la variable 'b' se declara solo en la primera rama de la instrucción switch. Intentar declararlo en la segunda rama también produce un error de compilación de "variable local duplicada".
int a = 3;
switch(a) {
case 0:
int b = 1;
System.out.println("case 0: b = " + b);
break;
case 1:
// the following line does not compile: b may not have been initialized
// System.out.println("case 1 before: b = " + b);
b = 2;
System.out.println("case 1 after: b = " + b);
break;
default:
b = 7;
System.out.println("default: b = " + b);
}
Nota: el código anterior se compila con un compilador de Java 1.6.
Respondido su propia pregunta. – darrengorman