以下所有代码均托管在GitHub上(点击这里直达)
1.没有标签的时候,continue的作用是忽略本次循环剩下的语句,直接进行本层循环的下一次循环,而不会结束循环,如下例子
private void continueInner(){
for (int i = 0; i < TIMES; i++) {
System.out.println("i的值是" + i);
if (i == 1) {
//忽略本次循环剩下的语句
continue;
}
System.out.println("continue之后的语句...");
}
}
如果TIMES=3,则当i=1时,不会执行continue之后的语句,而是直接进到下一次的循环。执行之后的结果为:
i的值是0
continue之后的语句
i的值是1
i的值是2
continue之后的语句
2.带标签的continue语句的作用是跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环
private void continueLabel() {
out:
for (int i = 0; i < TIMES; i++) {
for (int j = 0; j < TIMES; j++) {
System.out.println("i的值是" + i + " j的值是" + j);
if (j == 1) {
//忽略本次循环剩下的语句
continue out;
}
}
}
}
当TIMES=3时,循环到j=1,会直接跳出最内层剩下的循环,而是到了最外层的i=2,继续循环,所以会得到结果如下:
i的值是0 j的值是0
i的值是0 j的值是1
i的值是1 j的值是0
i的值是1 j的值是1
i的值是2 j的值是0
i的值是2 j的值是1
以上,就是continue的常用场景。
希望对你有所帮助