私がこれを持っているとしましょう:
while (a) {
while (b) {
if (b == 10) {
break;
}
}
}
質問: breakステートメントは私を両方のループから外しますか、それとも内側のループからのみ外しますか?ありがとうございました。
私がこれを持っているとしましょう:
while (a) {
while (b) {
if (b == 10) {
break;
}
}
}
質問: breakステートメントは私を両方のループから外しますか、それとも内側のループからのみ外しますか?ありがとうございました。
あなたの例では、 break ステートメントは while(b) ループから抜け出します
while(a) {
while(b) {
if(b == 10) {
break;
}
}
// break will take you here.
}
最も直接的なwhileループのみが中断されます。ラベルを使用すると、両方のループから抜け出すことができます。ここから抜粋したこの例を見てください。
public class Test {
public static void main(String[] args) {
outerloop:
for (int i=0; i < 5; i++) {
for (int j=0; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");
}
}
内側からのみ。特定のループにブレークしたい場合は、ラベル付きブレークを使用してください
label1:
for(){
label2:
for(){
if(condition1)
break label1;//break outerloop
if(condition2)
break label2;//break innerloop
}
}
も参照してください
while (a) {
while (b) {
if (b == 10) {
break;
}
}
}
上記のコードでは、 where (つまり) whereが使用されている最も内側のループを中断します。immediate loop
break
withを使用して、両方のループを一度に中断できます。break
label
label1:
while (a) {
while (b) {
if (b == 10) {
break label1;
}
}
}
@Abhishekkumar
Break キーワードには、C およびアセンブリから派生したルートがあり、Break は複合ステートメント、つまりループ、条件、メソッド、またはプロシージャから制御を渡すことだけを目的としています。
これらを参考にしてください...
http://tigcc.ticalc.org/doc/keywords.html#break
http://www.functionx.com/cpp/keywords/break.htm
http://en.wikipedia.org/wiki/Break_statement#Early_exit_from_loops
したがって、同時に 2 つのループから抜け出したい場合は、2 つの Break を使用する必要があります。つまり、内側のループに 1 つ、外側のループに 1 つです。
ただし、両方のループを同時に停止したい場合は、exit または return を使用する必要があります。
それはすぐにそれを囲むループから抜け出します。
ただし、ラベルに割り込むことはできます。
myLabel:
while(a) {
while(b) {
if(b == 10)
break myLabel;
}
}
スパゲッティコードになりやすいので、私は一般的にこのパターンを使用するのは好きではありません。ラベルのないブレークまたはフラグを使用して、ループを終了します。
興味深いことに、PHP の break ステートメントは、次のように、ブレークする外側のループの数を示す数値パラメーターを受け入れます。
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}
ステートメントは、そのステートメントbreak
を囲む最も内側のループから抜け出しますbreak
。
この例では、内側のwhileループです。
java breakステートメントは、ネストされた複数のループから抜け出すことはありません。
もちろん、内側のループのみ。