跳到主要内容

Java continue 语句

提示
  1. 跳过迭代continue 语句用于跳过当前循环迭代,通常结合条件语句使用,如 if...else
  2. 循环中的应用:在 forwhiledo...while 循环中使用 continue 可以跳过当前迭代并继续下一次循环。
  3. 嵌套循环和带标签的 continue:在嵌套循环中,continue 跳过最内层循环的迭代。带标签的 continue 可用于跳过外层循环的当前迭代,但应慎用以保持代码清晰。

在使用循环时,有时您可能希望跳过某些语句或终止循环。在这种情况下,通常会使用 breakcontinue 语句。

要了解 break 语句,请访问 Java break。这里,我们将学习 continue 语句。

Java continue

continue 语句用于跳过循环(forwhiledo...while 等)的当前迭代。

continue 语句之后,程序移动到循环的末尾。然后,测试表达式被评估(在 for 循环的情况下,更新语句被评估)。

这是 continue 语句的语法。

continue;

注意:continue 语句几乎总是用在决策制定语句中(if...else 语句)。

Java continue 语句的工作原理

Java while、do...while 和 for 循环中 continue 语句的工作原理。

示例 1:Java continue 语句

class Main {
public static void main(String[] args) {

// for 循环
for (int i = 1; i <= 10; ++i) {

// 如果 i 的值在 4 和 9 之间
// 执行 continue
if (i > 4 && i < 9) {
continue;
}
System.out.println(i);
}
}
}

输出

1
2
3
4
9
10

在上面的程序中,我们使用 for 循环在每次迭代中打印 i 的值。要了解 for 循环的工作方式,请访问 Java for 循环。请注意以下语句,

if (i > 4 && i < 9) {
continue;
}

这里,当 i 的值大于 4 且小于 9 时,会执行 continue 语句。

然后它跳过了这些值的打印语句。因此,输出跳过了值 5678

示例 2:计算 5 个正数的和

import java.util.Scanner;

class Main {
public static void main(String[] args) {

Double number, sum = 0.0;
// 创建 Scanner 对象
Scanner input = new Scanner(System.in);

for (int i = 1; i < 6; ++i) {
System.out.print("Enter number " + i + " : ");
// 从用户那里接收输入
number = input.nextDouble();

// 如果数字是负数
// 执行 continue 语句
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 语句会跳过最内层循环的当前迭代。

在 Java 中使用嵌套循环时,continue 语句会跳过最内层循环。

示例 3:continue 与嵌套循环

class Main {
public static void main(String[] args) {

int i = 1, j = 1;

// 外部循环
while (i <= 3) {

System.out.println("Outer Loop: " + i);

// 内部循环
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。

这里,continue 语句跳过了标签语句(即外部循环)的当前迭代。然后,程序控制权转移到标签语句的下一个迭代。

示例 4:带标签的 continue 语句

class Main {
public static void main(String[] args) {

// 外部循环被标记为 first
first:
for (int i = 1; i <

6; ++i) {

// 内部循环
for (int j = 1; j < 5; ++j) {
if (i == 3 || j == 2)

// 跳过外部循环的当前迭代
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 的情况下,请重构你的代码,尝试以不同的方式解决问题,以使其更易读。