在Java中打破for循环[关闭]


69

在我的代码中,我有一个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循环,我不能暂时将其替换,如果要运行if语句。

编辑:

仅作为示例提供了该代码,这不是我试图将其实现的代码。现在,我通过在每个循环初始化的位置之后放置多个IF语句来解决该问题。由于缺少中断,在线只能跳出循环的一部分;



您的要求不清楚。您何时想摆脱循环?
山姆,我是说要恢复莫妮卡(Monica)2013年

抱歉,我稍微举了例子。现在已全部排序-是由于退出循环然后进入另一个循环。需要多个IF和BREAK!
silverzx 2013年

您的示例中的唯一问题是您要设置x的值,而不是测试它的值。使用“ x == 15”,您的休息应该可以工作。
ostergaard

Answers:


167

break;是你所需要的突破像任何循环语句的出来forwhiledo-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");
}

18

如果由于某种原因您不想使用break指令(例如,如果您认为它会中断您的下一次阅读程序的读取流程),则可以尝试以下操作:

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

for循环的第二个arg是布尔测试。如果测试结果为true,则循环将停止。如果愿意,您可以使用多个简单的数学测试。否则,就像其他人所说的那样,简单的休息也可以解决问题:

for (int i = 0; i < 1220 ; i++) {
    System.out.println(i);
    if (i == 20) {
        break;
    }
 }

17

您可以使用:

for (int x = 0; x < 10; x++) {
  if (x == 5) { // If x is 5, then break it.
    break;
  }
}

10

怎么样

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

    System.out.println(k);
}

另一种方法是标记循环

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

为了获得更好的解释,您可以在这里查看


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");
  }
}
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.