Java 如何避免代码在循环之外执行

Java 如何避免代码在循环之外执行,java,for-loop,Java,For Loop,我有一个方法,我在for循环中比较arraylist值。 如果loop1的任何单个条件为true,我不想执行循环2(请参见下面的代码) 现在发生的是,对于一些值,循环1是statisfy,而对于另一些值,循环2满足。因此,正因为如此,i am db填充了错误的数据 我想以这样的方式修改我的代码。如果任何数组列表值正在检测循环1,则编译器应该从返回错误返回。在此之后,它不应该执行代码 循环检查条件为if(quant>Integer.parseInt(book.getQuantity()) Acti

我有一个方法,我在for循环中比较arraylist值。 如果loop1的任何单个条件为true,我不想执行
循环2
(请参见下面的代码)

现在发生的是,对于一些值,循环1是statisfy,而对于另一些值,循环2满足。因此,正因为如此,i am db填充了错误的数据

我想以这样的方式修改我的代码。如果任何数组列表值正在检测
循环1
,则编译器应该从
返回错误
返回。在此之后,它不应该执行代码

循环检查条件为
if(quant>Integer.parseInt(book.getQuantity())

Action.java

    public String execute()
{   
      if(id.length == quantity.length)
    {
      for (int i = 0; i < id.length; ++i)
       { 
         book = dao.listbookdetailsByBId(id[i]);
         Double dq=new Double(quantity[i]);
         int quant=dq.intValue();  
          if(quant>Integer.parseInt(book.getQuantity()))
          {   
                 //Loop 1  , this is executing if any of the quant is greater then book.getQuantity()..                    
                //i want to stop executing LOOP2 ,if any of the value of quant is greater then book.getQuantity().
              addActionError("You have entered an invalid quantity for the Book Title- ''"+book.getBookTitile()+"''."); 
              return ERROR; 
          }   

    /*  Loop2 starts here
    *   Loop 2 , this is executing if any of the quant is lesser .. 
    *   The below code should execute only if compiler does not reach to the loop1 */

                      // Some DAO code goes here

       }
    }

    return SUCCESS;
}
publicstringexecute()
{   
if(id.length==数量.length)
{
对于(int i=0;iInteger.parseInt(book.getQuantity()))
{   
//循环1,如果任何数量大于book.getQuantity(),则执行此操作。。
//如果quant的任何值大于book.getQuantity(),我想停止执行LOOP2。
addActionError(“您为书名输入了无效数量-“”“+Book.getBookTitile()+”);
返回误差;
}   
/*循环2从这里开始
*循环2,如果任何数量较小,则执行此操作。。
*仅当编译器未到达loop1时,才应执行以下代码*/
//这里有一些DAO代码
}
}
回归成功;
}

只需使用break语句

if(quant>Integer.parseInt(book.getQuantity()))
      {   
             //Loop 1  , this is executing if any of the quant is greater then book.getQuantity()..                    
            //i want to stop executing LOOP2 ,if any of the value of quant is greater then book.getQuantity().
          addActionError("You have entered an invalid quantity for the Book Title- ''"+book.getBookTitile()+"''."); 
          break; 
      }

您应该使用break语句来实现这一点,或者您可以创建一个局部布尔变量,并使用它来避免进入循环2

    if(quant>Integer.parseInt(book.getQuantity()))
          { flag=false;
}

if(flag){
//loop 2
}

为什么不直接使用return(或break)?我似乎不清楚您的代码。第一个循环在哪里结束?@CodeDreamer at
返回错误是的,你是对的。我以前也试过。但我一直在休息;返回误差。所以我犯了一个错误。然后我终于想在这里问一下。谢谢阿里·阿拉米尔