当前位置: 首页 > 面试题库 >

在Java中突破for循环

梁成双
2023-03-14
问题内容

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

编辑:

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


问题答案:

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


 类似资料:
  • 问题内容: 我有一个像这样的嵌套循环构造: 现在如何摆脱两个循环?我看过类似的问题,但没有一个是Java特有的。我无法应用这些解决方案,因为大多数使用的gotos。 我不想将内部循环使用其他方法。 我不想重新运行循环。中断时,我完成了循环块的执行。 问题答案: 像其他答复者一样,我绝对希望将循环放入另一种方法中,此时你可以返回以完全停止迭代。该答案仅显示了如何满足问题中的要求。 你可以将break

  • 问题内容: 有没有比抛出异常更简单的方法来摆脱嵌套循环?(在Perl中,您可以给每个循环加上标签,至少可以继续一个外部循环。) 即,有没有比以下更好的方法: 问题答案: 至少有人建议,但也拒绝了。我认为没有其他方法,只需重复测试或重新组织代码即可。有时有点烦人。 范·罗瑟姆(van Rossum)先生在拒绝消息中提到使用,这确实很明智,我需要个人记住这一点。:)

  • 问题内容: 有什么方法可以使用函数打破无限循环吗?例如, 这将导致以下错误: 请说明为什么会发生这种情况以及如何解决。 问题答案: 就我而言,您不能从内部调用break,但是可以使其返回值( 例如:boolean )以停止无限循环 编码:

  • 问题内容: 我正在使用量角器和黄瓜框架;如何突破.filter或.map循环?如果找到匹配项,我不想继续进行迭代! 上面的代码找到了元素,但是继续进行迭代直到结束,而不是在存在匹配项时停止并通过调用 errorCallback 函数进行 中断 。 鉴于.map函数返回“ 解析为map函数返回的值数组的诺言 ” http://www.protractortest.org/#/api?view=Ele

  • 问题内容: 递归是一种“分而治之”的样式,它在变小的同时会拆分(Tree数据结构),如果发现违规,我希望它完全中断,这意味着中断所有递归路径并返回true。这可能吗? 问题答案: 您可以返回错误代码,或修改一些全局变量,以便每个递归实例都知道可以“杀死自己”。 某种东西。

  • 我正在创建一个突破游戏,我之前在这里问了一个问题,但没有提出解决方案。我有一个简单的物理过程来反转球与桨碰撞时的速度。但我需要实现一个更先进的物理系统,例如,当球击中桨的左侧和右侧时,等等。。。但我该如何计算碰撞后球的方向呢?突破的标准是在与球拍左侧碰撞时将球指向左侧,如果碰撞是向右的,则指向右侧,等等。。。 我如何计算在哪里击球?我有很多变量可以使用,比如桨叶的各个方面(宽度、高度、X位置)、球