解决方案 »

  1.   


    switch(value) {
       case * : .....; break;
       case * : .....; break;
       ...
       default : ...;
    }
      

  2.   

    case后面要加break
    否则会顺序执行下去
      

  3.   

    代码:
    public class Fallthrough {
        public static void main(String[] args) {
            int x = 2;
            int y = 3;
            // int x = 2,y=3;        switch(x)
            {
            case 3:
                y++;
                break;
            case 4:
                y++;
                break;
            default:
                y++;
                break;
            }
            
            System.out.println(y);
        }
    }
    执行结果:
    4
      

  4.   

    Java的switch语句的语法继承自C语言如果不加break会穿透(fallthrough)下一个case或者default另外,一般把default语句放在switch的最后的分支上,这样的代码利于理解建议阅读一下《代码大全》
      

  5.   


    但是x!=2呀,为什么要执行case3和case4
      

  6.   

    我从新说一下这个问题,这是一道程序题:int x = 2,y=3; switch(x)
     {
     default:
     y++;
     case 3:
     y++;
     case 4:
     y++;
     }
     System.out.println("y="+y);
    这样y=6而这样
    int x = 2,y=3; switch(x)
     {
     case 3:
     y++;
     case 4:
     y++;
     } System.out.println("y="+y);y=3
    为什么前一个每个case都执行,而下一次一个也不执行,不都没有break吗,为什么强者执行而后者不执行
      

  7.   


    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break至于7楼的程序,匹配default也是匹配
      

  8.   


    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break至于7楼的程序,匹配default也是匹配所噶,谢谢了,就是这个意思
      

  9.   

    这个第二种更本就执行不了,一个也不满足。如果你不加break 就会在符合条件之后接着执行。不会挑出switch