我不是 Java 的新手,但这是我以前从未见过的东西。假设有一个 switch case,在 case 0 中声明一个变量使变量在其他情况下可见,这是一件奇怪的事情,我认为这不是 java 风格。public static void main(String[] args) { String _case = "case"; switch (_case) { case "1": String foo = "foo"; break; case "2": String bar = "bar"; break; case "case": foo = "foo"; System.out.println(foo); // System.out.println(bar); //Variable bar might not have been initialized break; }}如果1未验证大小写,为什么以及如何String foo声明变量?在线执行代码
1 回答

MMTTMM
TA贡献1869条经验 获得超4个赞
因为您foo = "foo"
在最后一个案例中进行了设置,所以它保证变量在那个时候被实例化。bar
在最后一种情况下没有任何时刻被实例化,给你这个错误。这是因为 case 中变量的作用域等于整个 switch 语句的作用域。有关此问题的其他问题的更多信息
添加回答
举报
0/150
提交
取消