私は次のコードを持っています:
int x = 100; //Or some other value
while(x > 0) {
for(int i = 5; i > 0; i++) {
x = x-2;
if(x == 0)
break;
}
}
ただし、これはforループを壊すだけです。forループとwhileループの両方を壊すようにするにはどうすればよいですか?
乾杯!
私は次のコードを持っています:
int x = 100; //Or some other value
while(x > 0) {
for(int i = 5; i > 0; i++) {
x = x-2;
if(x == 0)
break;
}
}
ただし、これはforループを壊すだけです。forループとwhileループの両方を壊すようにするにはどうすればよいですか?
乾杯!
ラベル付きブレークを使用して、ラベルでマークされたブロックの後に実行をリダイレクトできます。
OUTER:
while(x > 0) {
for(int i = 5; i > 0; i++) {
x = x-2;
if(x == 0)
break OUTER;
}
}
ただし、その特定のケースでは、 while も終了するbreak
ため、単純な方法で機能します。x == 0
bool done=false;
while(!done && x > 0) {
for(int i = 5;!done && i > 0 ; i++) {
x = x-2;
if(x == 0){
done=true;
break ;
}
}
}
Outer:
for(int intOuter=0; intOuter < intArray.length ; intOuter++)
{
Inner:
for(int intInner=0; intInner < intArray[intOuter].length; intInner++)
{
if(intArray[intOuter][intInner] == 30)
{
blnFound = true;
break Outer;
}
}
}
中断を避けるようにしてください。ループを記述する別の方法が常にあるため、他の誰かがコードを変更する必要がある場合に、はるかに「きれい」で理解しやすいループを必要としません。あなたの例では while ループは不要ですが、それがどのように可能かを示すために:
while(x > 0) {
for(int i = 5; i > 0 && x!=0; i++) {
x = x-2;
}
}
x が 0 の場合、for ループは終了します。その後、while 条件が検証されます。x は 0 より小さい (ゼロ) ため、while ループも実行を停止します。