8

私は次のコードを持っています:

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ループの両方を壊すようにするにはどうすればよいですか?

乾杯!

4

4 に答える 4

6

ラベル付きブレークを使用して、ラベルでマークされたブロックの後に実行をリダイレクトできます。

OUTER:
while(x > 0) {
    for(int i = 5; i > 0; i++) {
        x = x-2;
        if(x == 0)
            break OUTER;
    }
}

ただし、その特定のケースでは、 while も終了するbreakため、単純な方法で機能します。x == 0

于 2013-03-20T14:03:01.713 に答える
1
bool done=false;
while(!done && x > 0) {
    for(int i = 5;!done &&  i > 0 ; i++) {
        x = x-2;
        if(x == 0){
            done=true;
            break ;
        }
    }
}
于 2013-03-20T14:06:30.123 に答える
0

この例を参照してください

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;
        }  

      }
    }
于 2013-03-20T14:03:46.300 に答える
0

中断を避けるようにしてください。ループを記述する別の方法が常にあるため、他の誰かがコードを変更する必要がある場合に、はるかに「きれい」で理解しやすいループを必要としません。あなたの例では while ループは不要ですが、それがどのように可能かを示すために:

while(x > 0) {

  for(int i = 5; i > 0 && x!=0; i++) {

    x = x-2;

  }

}

x が 0 の場合、for ループは終了します。その後、while 条件が検証されます。x は 0 より小さい (ゼロ) ため、while ループも実行を停止します。

于 2013-03-20T14:12:29.903 に答える