Gültigkeitsbereich der Variablen in einem Schaltergehäuse [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Deklarieren und Initialisieren von Variablen in Java-Switches 5 AntwortenIch glaube, ich verstehe nicht, wie das Zielfernrohr in einem Schaltergehäuse funktioniert.
Kann mir jemand erklären, warum der erste Code nicht kompiliert wird, der zweite?
Code 1:
int key = 2;
switch (key) {
case 1:
String str = "1";
return str;
case 2:
String str = "2"; // duplicate declaration of "str" according to Eclipse.
return str;
}
Code 2:
int key = 2;
if (key == 1) {
String str = "1";
return str;
} else if (key == 2) {
String str = "2";
return str;
}
Wie kommt es, dass der Gültigkeitsbereich der Variablen "str" nicht in Fall 1 enthalten ist?
Wenn ich die Deklaration von Fall 1 überspringe, wird die Variable "str" niemals deklariert ...