日期:2014-05-20  浏览次数:20638 次

循环问题
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++;
}
}
}


疑问:
如果把if(i==5){
i++;
continue;
}
中的i++ 删除掉,结果就变成 0,1,2,3,4,为什么6,7,8,9,就无法显示出来? 因为即使i=5的情况下,后面还有i++,可以自己增加,但是不是这样的显示结果。
 如果说,是因为使用continue,导致后面的System.out.println(i);i++;都无法执行下去的话,那么:0,1,2,3,4,这样的结果应该会不断无限循环出现才对,请高手解答。

------解决方案--------------------
修改后变为:
if(i==5){
continue;
}

根据continue语句的规则,是直接忽略后续所有代码,直接重新跳回循环的起始位置(第一句话),也就是while(i<10),所以问题是照旧:i永远没机会++,永远==5
------解决方案--------------------
因为修改后i总是等于5,continue的作用就是下面的代码忽略直接跳到循环开始,所以i一直等于5,并且程序比啊成一个死循环。
------解决方案--------------------
因为执行一次过后i等于5;因为有continue的存在,所以
System.out.println(i);
i++;
在i等于5了之后就一直不会被执行。
探讨

如果是直接忽略后续所有代码的花,那么“重新跳回循环的起始位置”,显示的结果:0,1,2,3,4,应该无限循环显示才对,可是为什么只显示一次呢?

------解决方案--------------------
探讨
如果是直接忽略后续所有代码的花,那么“重新跳回循环的起始位置”,显示的结果:0,1,2,3,4,应该无限循环显示才对,可是为什么只显示一次呢?