我觉得我不理解在switch case中作用域是如何工作的。
有人能否向我解释为什么第一段代码无法编译而第二段可以?
代码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;
}
代码2:
int key = 2;
if (key == 1) {
String str = "1";
return str;
} else if (key == 2) {
String str = "2";
return str;
}
变量 "str" 的作用域为什么不包含在 Case 1 内?
如果我跳过声明 Case 1,变量 "str" 就永远没有被声明...