在switch语句中
如果不加break的话,一个case之后其它case里的语句都会执行
你这里的执行情况是
i=0-> case0
i=1-> case1,case2,case3
i=2-> case2,case3
println("done")...
如果你希望每次只执行一个case中的语句
别忘了在每个中的语句末尾加上break
形如:
switch(i) { 
case 0: break; 
case 1: System.out.print("one "); break;
case 2: System.out.print("two ");break; 
case 3: System.out.print("three "); break;

解决方案 »

  1.   

    case 1: System.out.print("one "); break ;
    case 2: System.out.print("two "); break ;
    case 3: System.out.print("three "); break ;
    这样答案就对了
      

  2.   

    i=0跳出开始执行switch(i),这时i=1,输出one two three,i=2,输出two three,i<3跳出for,输出done,没问题呀
      

  3.   

    break并不是结束你的for循环,而是不继续执行下面所有的case,因此i==1会继续执行。