跳到主要内容

Java break 语句

提示
  1. Break语句功能:Java中的break语句用于立即终止循环,控制权转移到循环之外的下一个语句。
  2. Break在循环中的应用break通常与决策语句(如if...else)结合使用,用于在满足特定条件时退出循环。
  3. 带标签的Break语句:Java支持带标签的break语句,用于跳出嵌套循环,标签指明了要终止的外层循环。

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

在这种情况下,通常使用 breakcontinue 语句。关于 Java continue 语句,你将在下一个教程中学习。

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

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

以下是 Java 中 break 语句的语法:

break;

break 语句如何工作?

Java 编程中 break 语句是如何工作的?

示例 1:Java break 语句

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

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

// 如果 i 的值是 5 则循环终止
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;

// 创建 Scanner 对象
Scanner input = new Scanner(System.in);

while (true) {
System.out.print("输入一个数字:");

// 从用户那里获取 double 输入
number = input.nextDouble();

// 如果数字是负数则循环终止
if (number < 0.0) {
break;
}

sum += number;
}
System.out.println("总和 = " + sum);
}
}

输出

输入一个数字:3.2
输入一个数字:5
输入一个数字:2.3
输入一个数字:0
输入一个数字:-4.5
总和 = 10.5

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

if (number < 0.0) {
break;
}

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

Java break 和嵌套循环

在嵌套循环的情况下,break 语句将终止最内层的循环。 在嵌套循环中,break 语句终止最内层的 while 循环。

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

带标签的 break 语句

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

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

带标签的 break 语句用于终止最外层的循环。

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

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

这里是另一个例子:

while (testExpression) {
// 代码
second:
while (testExpression) {
// 代码
while(testExpression) {
// 代码
break second;
}
}
// 控制权跳转到这里
}

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

示例 3:带标签的 break 语句

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

// 第一个 for 循环被标记为 first
first:
for( int i = 1; i < 5; i++) {

// 第二个 for 循环被标记为 second
second:
for(int j = 1; j < 3; j ++ ) {
System.out.println("i = " + i + "; j = " +j);

// break 语句终止了标记为 first 的 for 循环
if (i == 2)
break first;
}
}
}
}

输出

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

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

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

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

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

// 第一个 for 循环被标记为 first
first:
for( int i = 1; i < 5; i++) {

// 第二个 for 循环被标记为 second
second:
for(int j = 1; j < 3; j ++ ) {

System.out.println("i = " + i + "; j = " +j);

// break 语句终止了标记为 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 语句中的案例。要了解更多,请访问 Java switch 语句