i的值默认先加了2,这里没有break语句,所以会有switch的经典穿透,每个数都加,j=0+2+6+6+4=18了

解决方案 »

  1.   

    i的值等于一switch语句中没有和i值相同的所以先执行了default语句由于没有break就继续往下执行
    1.j=j+2--------j=2
    2.j=j+6--------j=8
    3.j=j+6--------j=14
    4.j=j+4--------j=18
    所以最后结果为18
      

  2.   

     default语句,j+=2 即是j=j+2  => j=0+2 这不就是2??后面继续加。就是18
      

  3.   

    3L正解,你都不加break,不一直运行下去吗?
      

  4.   

    default默认继续执行 没有break 不断
      

  5.   

    case 2:j+=6;
    case 4:j+=6;
    case 0:j+=4; 
    没有case 1,所以运行default。
    由于你没有break,所以一直加下去。
      

  6.   

    先找switch中对应的分支,如果没有在找default,无论switch语句找到的是那个分支,都从这个分支向下运行,所以每个分支的最后要有break;
    如果没有break,就从这个分支一直运行到最后
      

  7.   

    呵呵  谢谢  我不是不加break  是我想看看switch穿透  谢谢各位老师了