Java 如何避免代码在循环之外执行
我有一个方法,我在for循环中比较arraylist值。 如果loop1的任何单个条件为true,我不想执行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
循环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
返回错误代码>是的,你是对的。我以前也试过。但我一直在休息;返回误差代码>。所以我犯了一个错误。然后我终于想在这里问一下。谢谢阿里·阿拉米尔