📜  Java继续声明

📅  最后修改于: 2020-09-26 14:18:29             🧑  作者: Mango

在本教程中,您将通过示例了解Java中的continue语句和标记为Continue语句的内容。

使用循环时,有时希望跳过循环内的某些语句或立即终止循环而不检查测试表达式。

在这种情况下,将使用breakcontinue语句。要了解break语句,请访问Java break。


Java中的continue语句跳过循环的当前迭代( forwhiledo...while等),并且程序的控制移至循环的结尾。并且,评估循环的测试表达式。

对于for循环,update语句在测试表达式之前执行。

continue语句几乎总是用在决策语句中(如果…其他语句)。它的语法是:

continue;

连续语句如何工作?

The continue statement is used in Java Loops (for, while, and do...while loops) to skip the current iteration of the loop.
Java的工作继续声明

示例1:Java继续语句

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循环。在这里,请注意以下声明:

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

这意味着当i的值大于4且小于9时,将跳过循环内的print语句。因此,我们得到跳过了5、6、7和8的输出。


示例2:Java继续语句

下面的程序计算用户输入的5个正数的总和。如果用户输入负数或零,则将其从计算中跳过。

为了接受用户的输入,我们使用了Scanner对象。要了解有关Scanner更多信息,请访问Java Scanner。

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 double type input from the user
      number = input.nextDouble();
         
      // if number is negative, the iteration is skipped
      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

在上面的程序中,请注意以下行:

if (number < 0.0) {
    continue;
}

这意味着当用户输入负数时,将跳过循环的当前迭代。然后开始下一次迭代。


Java继续和嵌套循环

在嵌套循环的情况下, continue跳过最内层循环的当前迭代。

The continue statement skipped the current iteration of the innermost loop in case of nested loops.
使用嵌套循环继续执行语句

标有继续声明

到目前为止,我们已经使用了未标记的continue语句。它用于终止最内部的循环和switch语句。但是,Java中还有另一种形式的continue语句,称为labeled contine

我们也可以使用labeled continue语句来终止最外面的循环。

The labeled continue statement is used to skip the current iteration of the outermost labeled loop.
标有标签的continue语句在Java中的工作

如您在上图中所看到的,我们已经使用标签标识符来指定外部循环。现在,请注意如何使用continue语句( continue label; )。

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


示例3:标记为continue的语句

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

        // the outer for loop is labeled as label      
        first:
        for (int i = 1; i < 6; ++i) {
            for (int j = 1; j < 5; ++j) {
                if (i == 3 || j == 2)

                    // skips the iteration of label (outer for 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 ,重构代码,并试图解决它以不同的方式,以使其更具可读性。