为什么不同的案例机构不会自动在自己的范围内?例如,如果我这样做:
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; } }
在每个要执行的语句集周围放置一个块,将每个帐户变量放在自己的范围内.但是为什么语言不能为我做这个呢?
你为什么要在CONDITION_ONE的主体中声明一个局部变量然后在CONDITION_TWO中使用它?这似乎是一个可怕的想法,应该明确禁止,而不是暗示允许.
解决方法
这与语言的其他部分不一致.
实际上,范围总是由块决定.这种一致性使Java更易于阅读和维护.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。