【问题标题】:Breaking out of a method in a loop [closed]打破循环中的方法[关闭]
【发布时间】:2012-10-04 19:16:33
【问题描述】:

我有一个在 if 语句中带有 break 语句的方法。该方法在一个while循环中。如果我在方法的 if 语句中使用 break 或者我必须使用 nested loops,它会跳出 while 循环吗?

public int x=0;public int y=0;
public boolean endCondition = true;
public void someMethod()
{
  if(x!=y) {//do something}
  else break;
} 
while(endCondition==true)
{ 
  this.someMethod();
}
System.out.println("Bloke");

【问题讨论】:

  • 你尝试的时候发生了什么?
  • Stack Overflow 不是代理 JVM。只需尝试您的代码即可回答您的问题。
  • 请尝试正确格式化您的代码,否则很难遵循循环和方法。

标签: java methods if-statement while-loop break


【解决方案1】:

您不能在没有循环或 switch 的情况下使用 break 。您需要使用return。但这似乎是一个无休止的方法调用,会导致 StackOverflow 异常。

【讨论】:

    【解决方案2】:

    您可能需要从该方法返回一个布尔值,然后您可以使用它来决定是否中断循环。

    在这个简单的示例中并不重要,但在使用break 时标记循环通常是一个好主意,因此很清楚您要跳出什么,尤其是在使用嵌套循环时。请参阅下面的标签FOO

    public boolean someMethod()
    {
      if(x!=y) 
      {
        //do something
        return false;
      }
      return true; // break
    } 
    
    FOO:while(true)
    { 
      if(someMethod()) break FOO;
    }
    

    【讨论】:

      【解决方案3】:

      要从一个函数中跳出来,你必须使用returnbreak 只会将你从你调用它的内部循环中分离出来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        相关资源
        最近更新 更多