标题: 大家看看这是为什么 [打印本页] 作者: 邢金华 时间: 2012-3-10 15:27 标题: 大家看看这是为什么 public class Test {
public static void main(String[] args) {
outputValue(1);
}
private static void outputValue(int a) {
switch (a) {
case 1:
int b = 0;
System.out.print(b);
break;
case 2:
int c = b;
System.out.print(c);
break;
}
}
正确写法:
private static void outputValue(int a) {
int b=0;
switch (a) {
case 1:
System.out.print(b);
break;
case 2:
int c = b;
System.out.print(c);
break;
}
}
这样的话就没有问题啦 作者: 黄方 时间: 2012-3-10 16:37
嗯嗯,你定义的变量只能作用在case区域内!!作者: 付鹏 时间: 2012-3-10 16:44
你的switch (a) {
case 1:
int b = 0;
System.out.print(b);
里面的b是局部变量 作用于只能在case1中
而case 2:
int c = b;
System.out.print(c);
break;
里面的局部变量b根本没有被初始化。
你可以在case2中初始化一下b
或者在switch语句外面定义一个成员变量b