Java break 语句

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

在这种情况下,可以使用 breakcontinue 语句。下一教程将介绍 Java continue 语句


Java 中的 break 语句会立即终止循环,并将程序的控制权转移到循环之后的下一条语句。

它几乎总是与决策语句(Java if...else 语句)一起使用。

以下是 Java break 语句的语法

break;

break 语句如何工作?

How break statement works in Java programming?
Java break 语句的工作原理

示例 1: Java break 语句

class Test {
    public static void main(String[] args) {
      
        // for loop
        for (int i = 1; i <= 10; ++i) {

            // if the value of i is 5 the loop terminates  
            if (i == 5) {
                break;
            }      
            System.out.println(i);
        }   
    }
}

输出:

1
2
3
4

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

if (i == 5) {
    break;
}

这意味着当 i 的值等于 5 时,循环终止。因此,我们只得到小于 5 的值的输出。


示例 2: Java break 语句

下面的程序计算用户输入的数字的总和,直到用户输入负数为止。

为了从用户那里获取输入,我们使用了 Scanner 对象。要了解更多关于 Scanner 的信息,请访问 Java Scanner

import java.util.Scanner;

class UserInputSum {
    public static void main(String[] args) {
      
        Double number, sum = 0.0;

        // create an object of Scanner
        Scanner input = new Scanner(System.in);
      
        while (true) {
            System.out.print("Enter a number: ");

            // takes double input from user
            number = input.nextDouble();
         
            // if number is negative the loop terminates
            if (number < 0.0) {
                break;
            }
         
           sum += number;
        }
        System.out.println("Sum = " + sum);
    }
}

输出:

Enter a number: 3.2
Enter a number: 5
Enter a number: 2.3
Enter a number: 0
Enter a number: -4.5
Sum = 10.5

在上面的程序中,while 循环的测试表达式始终为 true。请注意此行:

if (number < 0.0) {
    break;
}

这意味着当用户输入负数时,while 循环终止。


Java break 和嵌套循环

嵌套循环的情况下,break 语句会终止最内层的循环。

The break statement terminates the innermost while loop in case of nested loops.
break 语句与嵌套循环的工作原理

在这里,break 语句终止了最内层的 while 循环,并将控制权转移到外层循环。


带标签的 break 语句

到目前为止,我们使用的是无标签的 break 语句。它会终止最内层的循环和 switch 语句。但是,Java 中还有另一种形式的 break 语句,称为带标签的 break。

我们可以使用带标签的 break 语句来终止最外层的循环。

The labeled break statement is used to break the outermost loop.
Java 中带标签的 break 语句的工作原理

如上图所示,我们使用 label 标识符来指定外层循环。现在,请注意 break 语句的使用方式(break label;)。

在这里,break 语句终止了带标签的语句(即外层循环)。然后,程序的控制权转移到带标签语句之后的语句。

这是另一个示例

while (testExpression) {
   // codes
   second:
   while (testExpression) {
      // codes
      while(testExpression) {
         // codes
         break second;
      }
   }
   // control jumps here
}

在上面的示例中,当执行语句 break second; 时,带标签为 secondwhile 循环终止。然后,程序的控制权转移到第二个 while 循环之后的语句。


示例 3: 带标签的 break 语句

class LabeledBreak {
    public static void main(String[] args) {
   
        // the for loop is labeled as first   
        first:
        for( int i = 1; i < 5; i++) {

            // the for loop is labeled as second
            second:
            for(int j = 1; j < 3; j ++ ) {
                System.out.println("i = " + i + "; j = " +j);
             
                // the break statement breaks the first for loop
                if ( i == 2)
                    break first;
            }
        }
    }
}

输出:

i = 1; j = 1
i = 1; j = 2
i = 2; j = 1

在上面的示例中,使用了 labeled break 语句来终止标记为 first 的循环。即:

first:
for(int i = 1; i < 5; i++) {...}

在这里,如果我们将语句 break first; 更改为 break second;,程序将表现不同。在这种情况下,将终止标记为 second 的 for 循环。例如:

class LabeledBreak {
    public static void main(String[] args) {
      
        // the for loop is labeled as first
        first:
        for( int i = 1; i < 5; i++) {

            // the for loop is labeled as second
            second:
            for(int j = 1; j < 3; j ++ ) {

                System.out.println("i = " + i + "; j = " +j);
       
                // the break statement terminates the loop labeled as second   
                if ( i == 2)
                    break second;
            }
        }
    }
}

输出:

i = 1; j = 1
i = 1; j = 2
i = 2; j = 1
i = 3; j = 1
i = 3; j = 2
i = 4; j = 1
i = 4; j = 2

注意break 语句也用于终止 switch 语句中的 case。要了解更多信息,请访问 Java switch 语句

在我们结束之前,让我们来测试一下你对 Java break 语句的知识!你能解决以下挑战吗?

挑战

编写一个函数来检查一个数字是否为素数。

  • 如果一个数字只有两个不同的因子:**1** 和它本身,那么它就是素数。
  • 例如,**3** 是一个素数,因为它只有两个不同的因子:**1** 和 **3**。
  • 如果 num 是素数,则返回 "It's a prime number";否则,返回 "It's not a prime number"
你觉得这篇文章有帮助吗?

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

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

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