Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java break语句

在本教程中,您将借助示例来学习break语句,该语句在Java中被标记为break语句。

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

在这种情况下,将使用break和continue语句。您将在下一章中了解continue语句

Java中的break语句立即终止循环,程序的控制权移至循环后的下一条语句。

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

这是Java中break语句的语法:

break;

break语句如何工作?

break语句在Java编程中如何工作?
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("输入一个数字: ");

            //接受用户的两次输入
            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循环终止。

Java中断和嵌套循环

对于嵌套循环,break语句终止最里面的循环。

在嵌套循环的情况下,break语句终止最里面的while循环。
使用嵌套循环的break语句的工作流程图

在这里,break语句终止最内层的while循环,并且控制跳至外层循环。

带标记的break语句

到目前为止,我们已经使用了未标记的break语句。它终止最里面的循环和switch语句。但是,Java中还有另一种break语句形式,称为带标签的break。

我们也可以使用标记的break语句终止最外面的循环。

带标签的break语句用于中断最外面的循环。
带标签的break语句在Java中的工作流程图

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

在这里,该break语句终止了带标签的语句(即外循环)。然后,程序跳到指定的标记语句之后的语句。

这是另一个实例:

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

在上面的示例中,当执行语句 break second;时; 执行完后,标记为Second的while循环终止。 并且,程序的控制权在第二个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语句终止第一个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语句