且看如下代码,结果是什么呢?
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
if (i == 3) {
continue;
}
System.out.println(i);
i++;
}
}
答案是死循环,看看有没有人会认为是只跳过3不输出。
在i
递增到3的时候,进入判断语句,执行continue
,因为条件符合,所以就会跳出来继续执行循环,而后进行判断,发现i
又等于3 ,所以就死循环了。
改善方法
在continue之前加上递增,自增之后在下一次判断的时候就会略过continue,从而打印接下来的数字。
为了看上去不太懵(为什么会有两个i++
,这样的话不就会加两回嘛),也可以将条件改为i = i + 1
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
if (i == 3) {
i++; // i = i + 1
continue;
}
System.out.println(i);
i++;
}
}