在 Java 中,continue 是用于跳过当前循环迭代、直接进入下一次循环的关键字。虽然用法很简单,但在实际开发中容易踩到一些“常见错误 / 坑”。下面按使用场景 + 错误示例 + 正确做法来说明。
continue(非常常见)for (int i = 0; i < 5; i++) {
switch (i) {
case 1:
continue; // 编译错误
}
}
continue 只能用于循环,而 switch 不是循环结构。
for (int i = 0; i < 5; i++) {
switch (i) {
case 1:
break; // 跳出 switch
}
}
或改用 if:
for (int i = 0; i < 5; i++) {
if (i == 1) continue;
}
for (String s : list) {
if (s == null) continue;
list.remove(s); // ConcurrentModificationException
}
continue 只是跳过本次循环,并不会避免并发修改异常。
使用 Iterator:
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
if (s == null) continue;
it.remove();
}
continue 用错层级for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) continue;
System.out.println(i + "," + j);
}
}
很多人以为 continue 会跳过外层循环,其实 只跳过内层。
使用 标签(label):
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) continue outer;
}
}
⚠️ 标签不推荐使用过多,可读性差。
continue 会终止循环while (true) {
if (condition) continue;
// 以为这里会被执行
}
continue → 跳过本次剩余代码break → 结束整个循环do {
if (x < 0) continue;
x++;
} while (x < 10);
如果 x < 0,会无限循环。
✅ 正确写法通常是:
do {
if (x < 0) {
x++;
continue;
}
x++;
} while (x < 10);
| 关键字 | 作用 |
|---|---|
continue |
跳过本次循环 |
break |
结束整个循环 |
return |
结束方法 |
continue 常见错误清单 ✅switch 中使用 continuecontinue 会终止循环do-while 中造成死循环break / return 混淆如果你愿意,我可以结合你写的具体代码帮你找问题,或者给你一套continue vs break 的对比练习题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。