Java continue 语句

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

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


Java continue

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

continue 语句之后,程序会移至循环的末尾。然后,评估测试表达式(对于 for 循环,会评估更新语句)。

continue 语句的语法如下。

continue;

注意:continue 语句几乎总是用于决策语句(if...else Statement)。


Java continue 语句的工作原理

The working of continue statement with Java while, do...while, and for loop.
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 语句。

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


示例 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 语句会跳过最内层循环的当前迭代。

The continue statement skips the innermost loop while working with the nested loop in Java.
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 指定的循环的当前迭代。

The labeled continue statement skips the current iteration of the loop specified by the label.
Java 带标签的 continue 语句的工作原理

我们可以看到标签标识符指定了外层循环。请注意内部循环中使用 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 的情况,请重构您的代码,并尝试以不同的方式解决它,使其更具可读性。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战