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 次 |
最近记录: |