在 Java 里,continue 本身不会造成死循环,死循环通常是因为循环条件一直满足,且 continue 跳过了改变循环变量的代码。
下面从常见原因 → 解决方案 → 示例来说明。
continue 会“看起来像死循环”for (int i = 0; i < 10; ) {
if (i % 2 == 0) {
continue; // ❌ i 没有被修改
}
i++;
}
原因:
continue 直接跳回循环条件判断i++ 被跳过i 永远不变 → 死循环continue 的 3 种方式for 中把自增放初始化/条件里for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // ✅ i 仍然会自增
}
System.out.println(i);
}
✅ 推荐写法
while 中先修改循环变量int i = 0;
while (i < 10) {
i++; // ✅ 先修改
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
do-while 注意结尾自增int i = 0;
do {
i++;
if (i % 2 == 0) continue;
System.out.println(i);
} while (i < 10);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; ) {
if (j == 2) {
continue; // ❌ j 不变
}
j++;
}
}
✅ 修正:
for (int j = 0; j < 5; j++) {
if (j == 2) continue;
}
int count = 0;
while (true) {
if (++count > 1000) break;
}
System.out.println("i=" + i);
避免
continue死循环的核心原则:
✅ 保证continue不会跳过循环变量的更新
如果你有具体代码场景(for / while / 嵌套 / 集合遍历),可以贴出来,我帮你直接改。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。