English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、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文。