为什么在Java中,变量的作用域被限制在一个switch块中,而不是case块。例如,为什么Java中的switch语句的范围有限?
// Scope limited to a switch block
switch (number) {
case 1:
String result = "...";
break;
case 2:
result = "...";
break;
在上面的例子中,结果只需要声明一次。如果您声明两次,则会收到Duplicate local variable
消息。
我的问题是:如果程序知道你已经声明result
if number = 2
? (它不会落入case 1
并不会声明变量...还是会吗?)
编辑:
我可能会混淆大家。我知道如何限制变量的范围,但我的问题是:Java如何知道结果已被声明,如果它不属于?
可能重复的[Java开关:变量声明和范围](http://stackoverflow.com/questions/10932997/java-switch-variable-declaration-and-scope) – 2013-03-13 22:15:19
这是一个重复的,谢谢 - 我'将删除。编辑:不能删除 - 将标志。 – sdasdadas 2013-03-13 22:17:07
编辑我的答案。您还可以通过投票关闭:-) – 2013-03-13 22:19:44