Java continue 语句
在使用循环时,有时需要跳过循环中的某些语句,或者在不检查测试表达式的情况下立即终止循环。
针对这类需求,可使用continue
语句跳过当前循环体内剩余的语句,将程序控制权移至循环末尾并重新计算测试表达式以决定是否继续下一轮循环,该语句仅可用于 for 循环、while 循环和 do...while 循环的内部。
Java continue 实例
下面的示例程序演示了for
循环中使用continue
语句的示例:
/**
* 循环控制示例类
* 该类演示在for循环中使用continue语句跳过某些迭代的执行流程
* 当循环变量i小于4或大于7时,跳过本次循环的剩余语句,进入下一次迭代
**/
public class LoopControlExample {
public static void main(String[] args) {
// for循环:初始化i=1,条件i<=10,步进i++
for (int i = 1; i <= 10; ++i) {
// 当i小于4或大于9时,跳过本次循环的剩余语句,进入下一次迭代
if (i < 4 || i > 7) {
continue;
}
System.out.println(i);
}
}
}
执行程序后的输出结果:
4
5
6
7
在上面的示例中,使用for
循环来打印迭代中i
值。当循环变量i
小于4或大于7时,跳过本次循环的剩余语句,进入下一次迭代。
Java 嵌套循环 continue 用法
在 Java 嵌套循环中,使用continue
语句只能跳过当前所在循环的本次迭代,而无法直接跳出所有外层循环。外层的循环会继续执行其后续的迭代。下面是使用嵌套循环的continue
语句的工作流程图:
嵌套循环 continue 语句实例
下面的示例程序演示了在嵌套循环中使用continue
语句的示例:
/**
* 嵌套循环控制示例类
* 该类演示在嵌套for循环中使用continue语句跳过内层循环的某些迭代的执行流程
* 当内层循环变量j等于2时,跳过本次内层循环的剩余语句,进入下一次迭代
**/
public class ContinueExample {
public static void main(String[] args) {
// 嵌套循环示例:打印1-3的数字组合,但当内层循环遇到2时跳过
for (int i = 1; i <= 3; i++) {
System.out.println("外层循环: i = " + i);
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue; // 跳过内层循环中j=2的这次迭代
}
System.out.println(" 内层循环: j = " + j + " -> 组合: (" + i + "," + j + ")");
}
System.out.println("外层循环 " + i + " 结束\n");
}
}
}
执行程序后的输出结果:
外层循环: i = 1
内层循环: j = 1 -> 组合: (1,1)
内层循环: j = 3 -> 组合: (1,3)
外层循环 1 结束
外层循环: i = 2
内层循环: j = 1 -> 组合: (2,1)
内层循环: j = 3 -> 组合: (2,3)
外层循环 2 结束
外层循环: i = 3
内层循环: j = 1 -> 组合: (3,1)
内层循环: j = 3 -> 组合: (3,3)
外层循环 3 结束
在上面的示例中,执行流程说明:
- 外层循环变量
i
从1到3进行迭代。 - 对于每个
i
值,内层循环变量j
也从1到3进行迭代。 - 当
j
等于2时,触发continue
语句,跳过当前内层循环的剩余语句,直接进入下一次迭代。 - 因此,输出中不会包含任何
j=2
的组合。 - 每次外层循环结束后,打印一条分隔线以区分不同的
i
值。
带标签的 continue 语句
目前我们使用的是未标记的continue
语句,它用于跳过当前循环迭代的剩余代码,并立即继续最内层循环的下一轮迭代。除此之外,Java 还提供了另一种形式的continue
语句,称为标记 continue
(labeled continue),它允许你跳过标记的循环迭代的剩余部分。
带标签的 continue 语句实例
下面的示例程序演示了在嵌套循环中使用带标签的continue
语句的示例:
/**
* 带标签的循环控制示例类
* 该类演示在嵌套for循环中使用带标签的continue语句跳过外层循环的当前迭代的执行流程
* 当内层循环变量j等于特定值(2)时,立即跳过外层循环的剩余部分,继续下一次外层迭代
**/
public class LabeledBreakExample {
public static void main(String[] args) {
outerLoop: // 外层循环标签
for (int i = 1; i <= 3; i++) {
innerLoop: // 内层循环标签
for (int j = 1; j <= 3; j++) {
System.out.println("i = " + i + ", j = " + j);
// 当满足某个条件时,直接跳过外层循环的当前迭代
if (i == 2 && j == 2) {
System.out.println("触发带标签的continue,跳过外层循环当前迭代");
continue outerLoop; // 跳过外层循环的剩余部分
}
}
// 这部分代码只会在内层循环正常完成后执行
System.out.println("完成外层循环的第 " + i + " 次迭代");
}
System.out.println("程序继续执行...");
}
}
执行程序后的输出结果:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
完成外层循环的第 1 次迭代
i = 2, j = 1
i = 2, j = 2
触发带标签的continue,跳过外层循环当前迭代
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
完成外层循环的第 3 次迭代
程序继续执行...
在上面的示例中,我们使用了两个嵌套的for
循环,并为外层循环添加了标签 outerLoop
。当内层循环变量j
等于2且外层循环变量i
也等于2时,执行了带标签的continue outerLoop
语句,直接跳过了外层循环当前迭代的剩余部分,继续执行外层循环的下一次迭代。
这种带标签的continue
语句允许我们精确控制多层嵌套循环的跳转行为,当满足特定条件时,不仅可以跳过内层循环的当前迭代,还可以直接跳过外层循环的剩余代码,进入外层循环的下一次迭代。
与break
语句不同的是:break
会完全终止标签指定的循环,而continue
只是跳过当前迭代,循环会继续执行后续的迭代。
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈