掌握 continue 语句在 for、while 和 do-while 循环中的使用方式
理解 continue 在不同循环类型中的执行机制差异
能够在嵌套循环中正确使用 continue 控制内层循环
区分 continue 与 break 的行为差异
避免因忘记更新变量导致的无限循环
在 Java 中,continue 是一种跳转语句(Jump Statement),用于跳过当前循环迭代的剩余部分,并立即进入下一次循环的条件判断或更新阶段。
✅ 核心作用:“跳过本次,继续下次”
它适用于所有类型的循环:
for
while
do-while
public class Main {
public static void main(String args[]) {
for (int i = 0; i <= 5; i++) {
if (i == 3)
continue; // 跳过 i=3 的输出
System.out.print(i + " ");
}
}
}输出结果
0 1 2 4 5 ✅ 说明:
当 i == 3 时,continue 触发
System.out.print(...) 被跳过
控制流直接跳到 i++(更新表达式),然后判断 i <= 5
for (初始化; 条件; 更新) {
// ...
continue; // 直接跳到“更新”部分
// ...
}🔁 执行顺序:
continue→ 执行更新表达式 → 判断条件 → 下一轮
int c = 0;
while (c <= 5) {
if (c == 3) {
c++; // 必须手动更新!
continue; // 直接跳到 while 条件判断
}
System.out.print(c + " ");
c++;
}输出: 0 1 2 4 5
⚠️ 关键点:
while循环没有自动更新机制,若在continue前不更新变量(如c++),会导致无限循环!
int i = 0;
do {
if (i == 3) {
i++;
continue; // 跳到 while 条件判断
}
System.out.print(i + " ");
i++;
} while (i <= 5);输出: 0 1 2 4 5
✅ 与
while类似,需手动确保变量更新,否则可能死循环。
仅影响内层循环
continue 默认只作用于最内层的循环。这是初学者常混淆的点。
示例:跳过 (3,2) 组合
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 3; j++) {
if (i == 3 && j == 2) {
continue; // 仅跳过本次内层循环
}
System.out.print(i + "." + j + " ");
}
System.out.println();
}输出:
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.3 // ← 3.2 被跳过
4.1 4.2 4.3 ✅ 结论:continue 不会跳出外层循环,仅控制当前所在循环。
💡 若需跳出外层循环,应使用带标签的
break(非continue)
for (int i = 1; i <= 10; i++) {
if (i == 3) continue; // 跳过 3
if (i == 7) break; // 遇到 7 就退出
System.out.print(i + " ");
}输出:
1 2 4 5 6
✅ 先跳过 3,再在 7 处终止,体现了两种跳转语句的协同使用。
在 while/do-while 中忘记更新变量
int x = 0;
while (x < 5) {
if (x == 2) {
continue; // 没有 x++!
}
x++;
}
// → 当 x=2 时,永远无法更新,陷入死循环!✅ 正确做法:
在 continue 之前更新变量,或
将更新放在循环体末尾,并确保 continue 不绕过它
优先用于数据过滤
for (String item : list) {
if (item.isEmpty()) continue;
process(item);
}避免深层嵌套
使用 continue 可减少 if 嵌套层级,提高可读性:
❌ 深层嵌套:
if (!invalid) {
if (validData) {
// 处理逻辑
}
}✅ 使用 continue:
if (invalid) continue;
if (!validData) continue;
// 处理逻辑(顶格写,更清晰)
编写一个程序,使用 continue 打印 1 到 20 中所有不是 5 的倍数的数字。
在嵌套循环中,能否用带标签的 continue 跳出到外层循环的下一次迭代?尝试查阅资料并验证。
为什么在 for 循环中使用 continue 通常比在 while 中更安全?从变量更新角度解释。