为什么不同的案件主体不会自动属于自己的范围?例如,如果我要这样做:
switch(condition) {
case CONDITION_ONE:
int account = 27373;
case CONDITION_TWO:
// account var not needed here
case CONDITION_THREE:
// account var not needed here
case CONDITION_FOUR:
int account = 90384;
}
编译器会抱怨局部变量重新定义。我知道我可以这样做:
switch(condition) {
case CONDITION_ONE: {
int account = 27373;
}
case CONDITION_TWO: {
// account var not needed here
}
case CONDITION_THREE: {
// account var not needed here
}
case CONDITION_FOUR: {
int account = 90384;
}
}
在要执行的每组语句周围放置一个块以将每个account
变量在自己的作用域内。但为什么该语言不为我做到这一点呢?
为什么你想要声明一个局部变量CONDITION_ONE
的身体,然后使用它CONDITION_TWO
的?这似乎是一个可怕的想法,应该明确禁止,而不是默许。
你为什么要want这?如果您需要为每个 case 块分配一个新的范围,那么您在 case 块中做了太多事情。将其推到一个方法中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)