【问题标题】:Breaking out of a for loop in Java [closed]打破Java中的for循环[关闭]
【发布时间】:2013-03-07 15:33:41
【问题描述】:

在我的代码中,我有一个 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 等语句代替它。

编辑:

这只是作为示例提供的,这不是我要实现的代码。我现在通过在每个循环初始化的地方放置多个 IF 语句来解决这个问题。在它由于缺少中断而只能跳出循环的一部分之前;

【问题讨论】:

  • 您的要求不清楚。你想什么时候跳出循环?
  • 对不起,我有点匆忙的例子。现在所有排序 - 是由于打破一个循环然后进入另一个循环。需要多个 IF 和 BREAK!
  • 您的示例中唯一的问题是您正在设置 x 的值而不是测试它的值。使用“x == 15”,你的休息应该会奏效。

标签: java loops for-loop break


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    for 循环的第二个参数是布尔测试。如果测试结果为真,则循环将停止。如果您愿意,您可以使用的不仅仅是简单的数学测试。 否则,正如其他人所说,一个简单的休息也可以解决问题:

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

    【讨论】:

      【解决方案3】:

      你可以使用:

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

      【讨论】:

        【解决方案4】:

        怎么样

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

        为了更好的解释,您可以查看here

        【讨论】:

          【解决方案5】:
          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");
            }
          }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-03-11
            • 2012-10-04
            • 2012-11-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多