sda*_*das 6 java scope language-design switch-statement
为什么在Java中,变量的范围局限于开关块而不是case块.例如,
// Scope limited to a switch block
switch (number) {
case 1:
String result = "...";
break;
case 2:
result = "...";
break;
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,结果只需要声明一次.如果您声明两次,则会收到一条Duplicate local variable消息.
我的问题是:程序如何知道你已经声明result,如果number = 2?(它不会落入case 1并且不会声明变量......或者它会吗?)
编辑:
我可能会让所有人感到困惑.我理解如何限制变量的范围,但我的问题是:如果不属于这种情况,Java如何知道结果已被声明?
您可以通过添加如下所示的大括号将范围限制为大小写块:
// Scope limited to a switch block
switch (number) {
case 1:{
String result = "...";
break;
}
case 2:{
String result = "...";
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |