77

私のコードには、for 条件が満たされるまでコードのメソッドを反復する for ループがあります。

この for ループから抜け出す方法はありますか?

以下のコードを見ると、「15」に達したときにこの for ループから抜け出したい場合はどうなるでしょうか。

public class Test {

   public static void main(String args[]) {

      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

Outputs:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

私は無駄に次のことを試しました:

public class Test {

   public static void main(String args[]) {
      boolean breakLoop = false;
      while (!breakLoop) {
          for(int x = 10; x < 20; x = x+1) {
             System.out.print("value of x : " + x );
             System.out.print("\n");
          if (x = 15) {
              breakLoop = true;
          }
          }
      }
   }
}

そして、私はループを試しました:

public class Test {

   public static void main(String args[]) {
      breakLoop:
          for(int x = 10; x < 20; x = x+1) {
             System.out.print("value of x : " + x );
             System.out.print("\n");
             if (x = 15) {
                 break breakLoop;
             }
      }
   }
}

私がやりたいことを達成できる唯一の方法は、for ループから抜け出すことです。しばらくの間、do、if etc ステートメントに置き換えることはできません。

編集:

これは例としてのみ提供されたものであり、これを実装しようとしているコードではありません。各ループが初期化される場所の後に複数の IF ステートメントを配置することで、問題を解決しました。ブレークがないためにループの一部から飛び出す前に。

4

5 に答える 5

178

break;for、、、などのループステートメントから抜け出すために必要なものwhileですdo-while

あなたの場合、それは次のようになります:-

for(int x = 10; x < 20; x++) {
         // The below condition can be present before or after your sysouts, depending on your needs.
         if(x == 15){
             break; // A unlabeled break is enough. You don't need a labeled break here.
         }
         System.out.print("value of x : " + x );
         System.out.print("\n");
}
于 2013-03-07T15:34:45.897 に答える
20

なんらかの理由で break 命令を使用したくない場合 (たとえば、次にプログラムを読み取るときに読み取りフローが中断されると思われる場合)、次のことを試すことができます。

boolean test = true;
for (int i = 0; i < 1220 && test; i++) {
    System.out.println(i);
    if (i == 20) {
        test = false;
    }
 }

for ループの 2 番目の引数は、ブール値のテストです。テストの結果が true の場合、ループは停止します。必要に応じて、単純な数学のテスト以上のものを使用できます。それ以外の場合は、他の人が言ったように、単純な休憩でもうまくいきます。

for (int i = 0; i < 1220 ; i++) {
    System.out.println(i);
    if (i == 20) {
        break;
    }
 }
于 2013-03-07T16:11:23.343 に答える
18

次を使用できます。

for (int x = 0; x < 10; x++) {
  if (x == 5) { // If x is 5, then break it.
    break;
  }
}
于 2013-03-07T15:35:08.867 に答える
12

どうですか

for (int k = 0; k < 10; k = k + 2) {
    if (k == 2) {
        break;
    }

    System.out.println(k);
}

もう 1 つの方法は、ラベル付きループです。

myloop:  for (int i=0; i < 5; i++) {

              for (int j=0; j < 5; j++) {

                if (i * j > 6) {
                  System.out.println("Breaking");
                  break myloop;
                }

                System.out.println(i + " " + j);
              }
          }

さらに良い説明については、ここで確認できます

于 2013-03-07T15:36:13.480 に答える
3
public class Test {

public static void main(String args[]) {

  for(int x = 10; x < 20; x = x+1) {
     if(x==15)
         break;
     System.out.print("value of x : " + x );
     System.out.print("\n");
  }
}
}
于 2013-03-07T15:36:29.377 に答える