先看下代码,很简单:
public static void main(String[] args) {
byte i=2;
switch(i){
case 1:
byte var=1;
System.out.println(var);
break;
case 2:
var=2;
System.out.println(var);
break;
case 3:
var=3;
System.out.println(var);
break;
}
}
问题是为什么case 1没有做,在case 2 或 3 中就可以直接使用变量var,而且编译不报错?
如果Thinking in Java里面有提到过的话能不能告诉我在第几页或哪一章,谢谢~~
public static void main(String[] args) {
byte i=2;
switch(i){
case 1:
byte var=1;
System.out.println(var);
break;
case 2:
var=2;
System.out.println(var);
break;
case 3:
var=3;
System.out.println(var);
break;
}
}
问题是为什么case 1没有做,在case 2 或 3 中就可以直接使用变量var,而且编译不报错?
如果Thinking in Java里面有提到过的话能不能告诉我在第几页或哪一章,谢谢~~
switch(3){
case 1:
byte var=1; //跳过
break;
case 2:
var=100; //跳过
break;
case 3: //开始执行
var=125;
System.out.println(var);
break;
}
}输出的值是125是不是和编译的方式有关系?是不是在编译的时候认为我已经定义了变量var,等编译完,执行的时候就可以使用了?