case -1没匹配到。。就会往下判断啊。
都没匹配执行default 

解决方案 »

  1.   

    switch 就这样,在哪匹配了条件,那么从那个地方开始,后边只关注是否有break, 只要遇到break 就结束;否则,要执行break之前的那些语句,而忽略条件判断语句。
    语法就这样定义了。
      

  2.   

    break关键字很重要。匹配到case之后,如果没有break,下面的case还会继续走
      

  3.   

     楼上都说完了,碰到break跳出switch,没有break就一直向下去匹配。
      

  4.   

    这就是为什么有if else了还有switch
      

  5.   

    if else if判断太多时,就没有switch直观了。
      

  6.   

    if else if判断太多时,就没有switch直观了。这只是一个原因。另一个原因就很难代替了。
      

  7.   

    穿透了啊  匹配到之后直到break之前的都会执行
      

  8.   

    学C的时候,就是理解错了又纠正过来了,现在弄Java又犯了。
      

  9.   

    没有break的话就继续执行了啊,跟匹配不匹配没有关系。。
      

  10.   

    匹配了没碰到break就会每个case都执行,一直到default结束
      

  11.   

    正常,要是没有break,就会一直往下执行。
    试试这个//...
    switch(1){
       cast 1:
           System.out.println("1");
       cast 2:
           System.out.println("2");
       cast 3:
           System.out.println("3");
           break;
       cast 4:
           System.out.println("4");
    }//......