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了之后就一直不会被执行。
------解决方案--------------------------------------------------------