Java switch语句-在一种情况下使用变量,在另一种情况下声明
我对Java并不陌生,但这是我以前从未见过的东西。Java switch语句-在一种情况下使用变量,在另一种情况下声明,java,switch-statement,Java,Switch Statement,我对Java并不陌生,但这是我以前从未见过的东西。 假设有一个switch case,在case 0中声明一个变量会使变量在其他情况下可见,这是一件奇怪的事情,我认为不是java风格的 public static void main(String[] args) { String _case = "case"; switch (_case) { case "1": String foo = "foo"; break
假设有一个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;
}
}
如果未验证case1
,为什么以及如何声明字符串foo
变量
代码在线因为您在上一个案例中设置了
foo=“foo”
,所以它保证变量在该点被实例化。在最后一种情况下,bar
没有被实例化的时刻,给你这个错误。这是因为一个实例中变量的作用域等于整个switch语句的作用域。关于的更多信息,因为您在上一个案例中设置了foo=“foo”
,它保证变量在该点被实例化。在最后一种情况下,bar
没有被实例化的时刻,给你这个错误。这是因为一个实例中变量的作用域等于整个switch语句的作用域。更多关于的信息是的,我知道,但我在案例一中声明了foo!为什么在最后一个案例中它是可见的?这是我的question@RobertoManfredacase中变量的作用域等于整个switch语句是的,我知道,但是我在case 1中声明了foo!为什么在最后一个案例中它是可见的?这是我的question@RobertoManfreda案例中变量的范围等于整个switch语句我找到了答案,我很惊讶我可以发誓我是正确的是,看到这样的情况对我来说也很奇怪:DAnother问题==另一篇帖子。。。每个帖子请回答1个问题。我找到了答案,我很惊讶。我可以发誓我是对的。是的,看到这样的事情对我来说也很奇怪:DAnother问题==另一篇帖子。。。每个帖子请回答一个问题。