English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java フローコントロール

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(List)

Java キュー(クエueue)

Java Map集合

Java Set集合

Java 入出力(I/O)

Java Reader/Writer

Java その他のトピック

Java break文

このチュートリアルでは、Javaでbreak文がどのように動作するかを例を用いて学びます。

ループを使用する際に、時にはループ内の特定の文をスキップしたり、テスト式を確認せずにループを即座に終了したい場合があります。

この場合、breakとcontinue文を使用します。次の章で学びます。continue文

Javaでのbreak文は、ループを即座に終了し、プログラムのコントロールはループの次の文に移動します。

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("输入一个数字: ");
            //接受用户的两次输入
            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语句的工作流程图

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

带标记的break语句

到目前为止,我们已经使用了未标记的break语句。它终止最里面的循环和switch语句。但是,Java中还有另一种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文