class Switch
{
public static void main(String[] args)
{
int i=9;
switch(i)
{
default:
{
System.out.println("default");
}
case 0:
{
System.out.println("zero");
break;
}
case 1:
{
System.out.println("one");
}
case 2:
{
System.out.println("two");
}
}
}
}执行的结果怎么会是"default zero" 后面的case不用判断就执行了啊?
而改成 int i=0,执行的结果是 "zero"!
{
public static void main(String[] args)
{
int i=9;
switch(i)
{
default:
{
System.out.println("default");
}
case 0:
{
System.out.println("zero");
break;
}
case 1:
{
System.out.println("one");
}
case 2:
{
System.out.println("two");
}
}
}
}执行的结果怎么会是"default zero" 后面的case不用判断就执行了啊?
而改成 int i=0,执行的结果是 "zero"!
楼主把default放在最前面的话,就一定要加上了。
{
System.out.println("default");
break; <--此处少了一个break;
}i=9,所以应该是default的情形。但是没有这个break,就会继续其它case的语句,输出了zero后遇到break就跳出来了i=0时,直接就到了输出0那儿,没有经过default.