在 Java 中,continue 是用于跳过当前循环本次剩余代码、直接进入下一次循环的关键字。虽然语法简单,但在实际使用中有不少常见错误和易踩的坑。下面按“错误类型 + 示例 + 说明”来总结。
continue 的地方使用continue 只能用在循环结构中(for、while、do-while)
❌ 错误示例:
if (x > 0) {
continue; // 编译错误
}
✅ 正确:
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue;
}
switch 中误用 continue新手常误以为 continue 可以跳出 switch
❌ 错误:
for (int i = 0; i < 5; i++) {
switch (i) {
case 1:
continue; // 这里其实是跳出 switch 的“错觉”
}
}
⚠️ 注意:
continue 作用在包含它的循环switch 中更常用的是 breakcontinue 会终止循环continue ≠ break
❌ 错误理解:
for (int i = 0; i < 10; i++) {
if (i == 5) continue; // 很多人以为循环会停
}
实际上只是跳过 i == 5 的这一次。
continue 导致死循环(最常见)在 while 循环中忘记更新循环变量
❌ 错误示例:
int i = 0;
while (i < 10) {
if (i < 5) {
continue; // i 永远不变 → 死循环
}
i++;
}
✅ 正确:
while (i < 10) {
i++;
if (i < 5) continue;
}
for 循环中 continue 不影响迭代表达式新手以为 continue 会跳过 i++
for (int i = 0; i < 10; i++) {
if (i == 3) continue;
}
✅ i++ 仍然执行
❌ 不会死循环
for-each 中修改集合结构for (String s : list) {
if (s.isEmpty()) continue;
}
✅ 这样没问题
❌ 但若在循环里 list.remove(s),会抛 ConcurrentModificationException
continue(易混淆)continue labelJava 支持:
outer:
for (...) {
for (...) {
if (x) continue outer;
}
}
常见错误:
continue label 会跳出多层循环(其实只是跳到 label 处继续)continuefor (...) {
if (a) continue;
if (b) continue;
if (c) continue;
// 真正逻辑
}
问题:
✅ 更好写法:
if (!a && !b && !c) {
// 真正逻辑
}
| 错误类型 | 是否常见 | 说明 |
|---|---|---|
| 非循环中使用 | ⭐ | 编译错误 |
| 死循环 | ⭐⭐⭐ | while + continue |
| 误解作用 | ⭐⭐ | 不是 break |
| foreach 改集合 | ⭐⭐ | 会异常 |
| 滥用 continue | ⭐⭐ | 可读性差 |
如果你愿意,我也可以结合你写的具体代码帮你指出 continue 用得对不对。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。