web-dev-qa-db-ja.com

breakステートメントはループから抜け出しますか、それともifステートメントから抜け出しますか?

次のコードでは、breakステートメントはifステートメントのみから抜け出しますか、それともforループから抜け出しますか?

ループから抜け出すためにも必要です。

for (int i = 0; i < 5; i++) {
    if (i == temp)
        // do something
    else {
        temp = i;
        break;
    }
}
12
darksky

それはforループから抜け出します。実際、breakは、loopsから完全に分離するので、loopは次のcontinueにのみ進むので、iterationについて話す場合にのみ意味があります。

20
Oscar Gomez

ラベルなしのbreakは、囲んでいるswitchforwhileまたはdo-while構成から抜け出すだけです。 ifステートメントは考慮されません。

詳細は http://download.Oracle.com/javase/tutorial/Java/nutsandbolts/branch.html を参照してください。

15

また、ループから抜け出します。

外側のループ(および任意のコードブロック)から抜け出すことができるラベル付きブレークを使用することもできます。

looplbl: for(int i=;i<;i++){

    if (i == temp)
        // do something
    else {
        temp = i;
        break looplbl;
    }
}
7
ratchet freak

それはループを壊しますが、なぜ条件をfor自体に明示的に入れないのですか?より読みやすくなり、ifステートメントをまったく記述する必要がなくなります。

(i == tempの場合、temp = iは完全に無意味です)

4
Luke Morgan

breakはループから抜け出すためのものです。

2
Arun

常にループから抜け出します。

2
Kevin Jalbert

Breakがif/elseステートメントを参照することはありません。ループ(if/while)とswitchステートメントのみを参照します。

2
ben

通常、breakステートメントはループ(forwhile、およびdo...while)およびswitchステートメント。

Javaには、breakの2つのバリアントがあります。

1. Labeled break

ラベルを置く外側のループから抜け出します。

breakThis: for(...){
   for(...){
      ... 
      break breakThis;  // breaks the outer for loop
   }
}

2. Unlabeled break

それはあなたがあなたの質問で使った言葉です。

それはそれが書かれているループを壊します。一般的に内側のループ。

1

これは、forループから抜け出します。一般にbreakステートメントは、プログラムの実行時間を最適化するために使用されます。与えられた条件が満たされたときに、ループから抜け出し、残りの反復を無視するようにbreakステートメントを使用します。

0
Akshay