public class Continue {
public static void main(String[]args){        
   int i=0;
while(i<10){
if(i==5){
i++;
continue;
}

System.out.println(i);
    i++;
}
}
}结果:012346789;
在上面这个循环体中,当i=5的时候,i++自动加1,那么应该会是6,在显示的结果中,应该会显示两个6出现,为什么没有显示?另外,如果把最后的i++去掉,会出现无限循环0,不会自己停止;请高手帮助解答,谢谢!

解决方案 »

  1.   

    这个问题比较基础了吧i=5的时候,i++自动加1,所以导致直接显示了6,但你System.out.println(i)后面还紧跟着一个i++吧?所以本次循环结束的时候,已经是 i==7 了。如果把最后的 i++ 去掉,就意味着 i永远没机会增加了吧?当然无限循环0,否则还能是啥?
      

  2.   

    System.out.println(i);
    i++;i是7。
      

  3.   

    当i=5的时候while(i<10){
    if(i==5){
    i++;
    continue;
    }System.out.println(i);//假设这里输出4
    i++;//此时i=5
    } 在进入下一次循环时,执行了i++;continue;
    所以没显示i=6就跳入下一次循环,这次执行System.out.println(i);
    就显示7了,没有显示两次6
    调试一下就全明白了