在 Java 里,continue 的作用就是“跳过当前这次循环迭代,直接进入下一次迭代”,这是语言规定的语义,不是“意外跳过”。
常见几种情况和容易误解的点如下:
continue 的基本语义(最重要)for (int i = 0; i < 5; i++) {
if (i == 2) {
continue;
}
System.out.println(i);
}
输出:
0
1
3
4
解释:
i == 2 时,continue 会:
continue 之后的代码i == 2 时没有打印✅ 这是“设计如此”,不是 bug
for 循环中:continue 仍会执行 i++for (int i = 0; i < 3; i++) {
if (i == 1) continue;
}
i == 1 时 continuei++ 仍然会执行i == 2✅ for 循环的迭代语句不受 continue 影响
while 循环中容易“死循环”int i = 0;
while (i < 3) {
if (i == 1) {
continue; // ❌ 可能死循环
}
i++;
}
原因:
continue 跳过了 i++i 永远是 1✅ 正确写法:
while (i < 3) {
i++;
if (i == 2) continue;
}
continue 只影响最内层循环for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) continue;
}
}
continue 只跳过 内层循环当前 ji 不受影响continue(很少用)outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) continue outer;
}
}
continue outer → 跳过外层当前迭代,直接进入下一次外层循环
continue就是“本次循环我不干了,直接下一次”
它不是跳过整个循环,也不是跳出循环(break才是)
如果你有具体代码觉得“它不该跳过却跳过了”,可以把代码贴出来,我可以帮你精确分析是哪一行导致的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。