以前没有太注意过,今天使用continue进行下一次for循环时无缘无故地出现了错误,最后发现这是因为continue对for循环的相关参数的影响引起的。
1.break对for循环参数的影响
代码如下:
public class Test0 {
public static void main(String[] args){
int i=0;
for(i=0;i<5;i++,System.out.println(i)){
if(i==2) break;
}
}
}
输出的结果如下:
可以看出在使用break结束一个for循环后,for循环后面的小括号中最后一个分号后面的语句没有被执行。
2.continue对for循环参数的影响
代码如下:
public class Test {
public static void main(String[] args){
int i=0;
int j=1;
for(i=0;i<5;i++,System.out.println(i)){
if(i==3){
j=0;
continue;
}
if(j==0){
break;
}
}
}
}
输出的结果如下:
由于break不会执行小括号最后一个分号后面的语句,可知结果输出了4是因为continue进行下一次循环前要先执行小括号中最后一个分号后面的语句。
综上可知:break结束一个for循环时不会执行for后面括号中最后一个分号后面的语句。
continue结束一次for循环跳入下一次循环之前要先执行for后面括号中最后一个分号后面的语句。