Wie behandelt der Java-Compiler den folgenden Switch-Block? Was ist der Gültigkeitsbereich der Variable 'b'?Java-Switch: Variablendeklaration und Gültigkeitsbereich
Beachten Sie, dass die Variable 'b' nur im ersten Zweig der switch-Anweisung deklariert wird. Der Versuch, es auch im zweiten Zweig zu deklarieren, führt zu einem Kompilierungsfehler "doppelte lokale Variable".
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);
}
Hinweis: Der obige Code kompiliert mit einem Java 1.6-Compiler.
Beantwortete Ihre eigene Frage. – darrengorman