次のコードでは、break
ステートメントはif
ステートメントのみから抜け出しますか、それともfor
ループから抜け出しますか?
ループから抜け出すためにも必要です。
for (int i = 0; i < 5; i++) {
if (i == temp)
// do something
else {
temp = i;
break;
}
}
それはforループから抜け出します。実際、break
は、loops
から完全に分離するので、loop
は次のcontinue
にのみ進むので、iteration
について話す場合にのみ意味があります。
ラベルなしのbreak
は、囲んでいるswitch
、for
、while
またはdo-while
構成から抜け出すだけです。 if
ステートメントは考慮されません。
詳細は http://download.Oracle.com/javase/tutorial/Java/nutsandbolts/branch.html を参照してください。
また、ループから抜け出します。
外側のループ(および任意のコードブロック)から抜け出すことができるラベル付きブレークを使用することもできます。
looplbl: for(int i=;i<;i++){
if (i == temp)
// do something
else {
temp = i;
break looplbl;
}
}
それはループを壊しますが、なぜ条件をfor自体に明示的に入れないのですか?より読みやすくなり、ifステートメントをまったく記述する必要がなくなります。
(i == tempの場合、temp = iは完全に無意味です)
break
はループから抜け出すためのものです。
常にループから抜け出します。
Breakがif/elseステートメントを参照することはありません。ループ(if/while)とswitchステートメントのみを参照します。
通常、break
ステートメントはループ(for
、while
、およびdo...while
)およびswitch
ステートメント。
Javaには、break
の2つのバリアントがあります。
Labeled break
ラベルを置く外側のループから抜け出します。
breakThis: for(...){
for(...){
...
break breakThis; // breaks the outer for loop
}
}
Unlabeled break
それはあなたがあなたの質問で使った言葉です。
それはそれが書かれているループを壊します。一般的に内側のループ。
これは、forループから抜け出します。一般にbreakステートメントは、プログラムの実行時間を最適化するために使用されます。与えられた条件が満たされたときに、ループから抜け出し、残りの反復を無視するようにbreakステートメントを使用します。