在使用循环时,有时可能希望跳过某些语句或终止循环。在这种情况下,可以使用 break
和 continue
语句。
要了解 break
语句,请访问 Java break。在这里,我们将了解 continue
语句。
Java continue
continue
语句会跳过循环(for
、while
、do...while
等)的当前迭代。
在 continue
语句之后,程序会移至循环的末尾。然后,评估测试表达式(对于 for 循环,会评估更新语句)。
continue 语句的语法如下。
continue;
注意:continue 语句几乎总是用于决策语句(if...else Statement)。
Java continue 语句的工作原理

示例 1:Java continue 语句
class Main {
public static void main(String[] args) {
// for loop
for (int i = 1; i <= 10; ++i) {
// if value of i is between 4 and 9
// continue is executed
if (i > 4 && i < 9) {
continue;
}
System.out.println(i);
}
}
}
输出:
1 2 3 4 9 10
在上面的程序中,我们使用 for
循环打印每次迭代中 i 的值。要了解 for
循环的工作原理,请访问 Java for loop。请注意以下语句:
if (i > 4 && i < 9) {
continue;
}
在这里,当 i 的值大于 4 且小于 9 时,将执行 continue
语句。
然后,它会跳过这些值的打印语句。因此,输出将跳过值 5、6、7 和 8。
示例 2:计算 5 个正数的和
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Double number, sum = 0.0;
// create an object of Scanner
Scanner input = new Scanner(System.in);
for (int i = 1; i < 6; ++i) {
System.out.print("Enter number " + i + " : ");
// takes input from the user
number = input.nextDouble();
// if number is negative
// continue statement is executed
if (number <= 0.0) {
continue;
}
sum += number;
}
System.out.println("Sum = " + sum);
input.close();
}
}
输出:
Enter number 1: 2.2 Enter number 2: 5.6 Enter number 3: 0 Enter number 4: -2.4 Enter number 5: -3 Sum = 7.8
在上面的示例中,我们使用 for 循环打印 5 个正数的和。请注意以下行:
if (number < 0.0) {
continue;
}
在这里,当用户输入负数时,将执行 continue
语句。这将跳过循环的当前迭代,并将程序控制转移到循环的更新表达式。
注意:为了从用户那里获取输入,我们使用了 Scanner
对象。要了解更多信息,请访问 Java Scanner。
Java continue 与嵌套循环
在 Java 嵌套循环的情况下,continue
语句会跳过最内层循环的当前迭代。

示例 3:continue 与嵌套循环
class Main {
public static void main(String[] args) {
int i = 1, j = 1;
// outer loop
while (i <= 3) {
System.out.println("Outer Loop: " + i);
// inner loop
while(j <= 3) {
if(j == 2) {
j++;
continue;
}
System.out.println("Inner Loop: " + j);
j++;
}
i++;
}
}
}
输出
Outer Loop: 1 Inner Loop: 1 Inner Loop: 3 Outer Loop: 2 Outer Loop: 3
在上面的示例中,我们使用了嵌套的 while 循环。请注意,我们在内部循环中使用了 continue
语句。
if(j == 2) {
j++;
continue:
}
在这里,当 j 的值为 2 时,j 的值会增加,并且会执行 continue
语句。
这将跳过内层循环的迭代。因此,输出中会跳过文本 Inner Loop: 2。
带标签的 continue 语句
到目前为止,我们使用的是无标签的 continue
语句。然而,Java 中还有另一种形式的 continue
语句,称为带标签的 continue。
它包含循环的标签以及 continue
关键字。例如,
continue label;
在这里,continue
语句会跳过由 label 指定的循环的当前迭代。

我们可以看到标签标识符指定了外层循环。请注意内部循环中使用 continue 的情况。
在这里,continue
语句正在跳过带标签语句(即外层循环)的当前迭代。然后,程序控制会转到带标签语句的下一次迭代。
示例 4:带标签的 continue 语句
class Main {
public static void main(String[] args) {
// outer loop is labeled as first
first:
for (int i = 1; i < 6; ++i) {
// inner loop
for (int j = 1; j < 5; ++j) {
if (i == 3 || j == 2)
// skips the current iteration of outer loop
continue first;
System.out.println("i = " + i + "; j = " + j);
}
}
}
}
输出:
i = 1; j = 1 i = 2; j = 1 i = 4; j = 1 i = 5; j = 1
在上面的示例中,使用 labeled continue
语句来跳过标签为 first 的循环的当前迭代。
if (i==3 || j==2)
continue first;
在这里,我们可以看到最外层的 for
循环被标记为 first,
first:
for (int i = 1; i < 6; ++i) {..}
因此,如果 i 的值为 3 或 j 的值为 2,则会跳过外层 for
循环的迭代。
注意:通常不鼓励使用带标签的 continue
,因为它会使代码难以理解。如果您遇到需要使用带标签的 continue
的情况,请重构您的代码,并尝试以不同的方式解决它,使其更具可读性。