int i=1, j=0 ; switch(i)  { 
case 2: 
j+=6;  case 4: 
j+=1;  default: 
j +=2;  case 0: 
j +=4; 

System.out.println(j);结果为什么是6呢?不解

解决方案 »

  1.   

    没有break的case分支不会直接退出switch,而是继续执行下面的代码
      

  2.   

    switch语句每个case里都必须要有break;来退出switch语句
    switch(i)  { 
    case 2:{ 
    j+=6; 
                       break;
                      }
    case 4:{ 
    j+=1; 
                        break;
                       }
    default:{ 
    j +=2; 
                       break;
                      }
    case 0:{ 
    j +=4; 
                       break;
                      }
    }
      

  3.   

    i=1
    没有相应的case分支,所以执行default: j=0+2=2
    default分支没有break,继续执行下面的代码:j=2+4=6!!!!!
      

  4.   

    晕   缺少break;当然往下运行了   汗
      

  5.   

    晕   缺少break;当然往下运行了   汗