Ich glaube, ich verstehe nicht, wie das Oszilloskop in einem Switch-Fall funktioniert.Variabler Umfang in einem Switch-Gehäuse
Kann mir jemand erklären, warum der erste Code nicht kompiliert wird, aber 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 der Umfang der Variable "str" kommen nicht innerhalb von Fall 1 enthält?
Wenn ich die Erklärung von Fall 1 die Variable „str“ überspringen wird nie erklärt ...
Hören Sie sich diesen Typen an. Er hat recht. – John
Korrigieren. Aber ich würde mich sehr über jeden Programmierer in meinem Team ärgern, der diese "Syntax" ohne einen sehr guten Grund verwendet. Es ist ein Rezept für Verwirrung und Fehler. Es verbirgt optisch die Tatsache, dass der erste Fallblock (wenn er nicht für die "Rückkehr" war) "auch nach der schließenden Klammer" weitergeht - und dazu beiträgt, die "Pause" zu vergessen. – leonbloy
auch: Verwenden Sie "Break" für Wartbarkeit und Bug-Prävention! auch wenn nicht erforderlich. – worenga