在本教程中,您将借助示例来学习break语句,该语句在Java中被标记为break语句。
在使用循环时,有时希望跳过循环内的某些语句或立即终止循环而不检查测试表达式。
在这种情况下,将使用break和continue语句。您将在下一章中了解continue语句。
Java中的break语句立即终止循环,程序的控制权移至循环后的下一条语句。
break语句它几乎总是与决策语句(Java if ... else语句)一起使用。
这是Java中break语句的语法:
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的输出值。
下面的程序计算用户输入的数字总和,直到用户输入负数。
为了接受用户的输入,我们使用了该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("输入一个数字: "); //接受用户的两次输入 number = input.nextDouble(); //如果number为负数,循环终止 if (number < 0.0) { break; } sum += number; } System.out.println("Sum = " + sum); } }
输出:
输入一个数字: 3.2 输入一个数字: 5 输入一个数字: 2.3 输入一个数字: 0 输入一个数字: -4.5 Sum = 10.5
在上述程序中,while循环的测试表达式始终为true。在这里,请注意这行,
if (number < 0.0) { break; }
这意味着当用户输入负数时,while循环终止。
对于嵌套循环,break语句终止最里面的循环。
在这里,break语句终止最内层的while循环,并且控制跳至外层循环。
到目前为止,我们已经使用了未标记的break语句。它终止最里面的循环和switch语句。但是,Java中还有另一种break语句形式,称为带标签的break。
我们也可以使用标记的break语句终止最外面的循环。
如上图所示,我们使用label标识符来指定外部循环。现在,请注意如何使用该break语句(break label;)。
在这里,该break语句终止了带标签的语句(即外循环)。然后,程序跳到指定的标记语句之后的语句。
这是另一个实例:
while (testExpression) { // 代码 second: while (testExpression) { // 代码 while(testExpression) { // 代码 break second; } } //控制跳到这里 }
在上面的示例中,当执行语句 break second;时; 执行完后,标记为Second的while循环终止。 并且,程序的控制权在第二个while循环之后移至该语句。
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语句终止第一个for循环 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) { //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语句中的case。要了解更多信息,请访问Java switch语句。