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"!

解决方案 »

  1.   

    每个case里,都要有break; ,就像你的代码里的“case 0”那样。如果没有break,就继续往下执行。
      

  2.   

    break终止循环(用于switch中的case)continue是结束当前循环(用于for循环)
      

  3.   

    一般都把default放在最后面,所以不写break也行。
    楼主把default放在最前面的话,就一定要加上了。
      

  4.   

    i=9那应该是default,而zero,应该是i=0吧,i怎么等于0的?
      

  5.   

    还是没有实质性的说出为什么来 等待ing !
      

  6.   

    default:
    {
    System.out.println("default");
    break; <--此处少了一个break;
    }i=9,所以应该是default的情形。但是没有这个break,就会继续其它case的语句,输出了zero后遇到break就跳出来了i=0时,直接就到了输出0那儿,没有经过default.
      

  7.   

    楼上各位大虾已经解释完毕 尤其是STEEL007尤为详细