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
-----
以前在C里好象不是这样子的结果,帮忙解释一下?

解决方案 »

  1.   

    因为没有用break
    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");
       }
    程序找不到适合的case就去运行那个default,然后一直运行下来直到break
      

  2.   

    因为你其他地方没有用break;来跳出阿
      

  3.   

    和c一样的吧
    得用break跳出来
      

  4.   

    你 default: 里面没有用break跳出,一直执行下去,直到遇到break 就跳出
    所以结果是default zero