这个问题来自我的强制症性质。说我有这段代码。
boolean executed = false;
for(Object o : Collection){
if((o fulfills condition) && executed == false){
//do something
executed = true;
}
//other code
}
如果规范仅要求if语句一旦执行即可执行,那么是否有比将
executed
设置为true更好的方法来跳过检查 if条件?令我困扰的是,在if语句已经执行之后,循环需要在每个单循环迭代中检查if条件。执行 boolean 值的目的是防止if语句再次执行。我不确定这是否可行,但是我想更进一步,如果
executed
是true
,则跳过是否有条件的检查。编辑:满足条件后,我仍然需要完成循环。
最佳答案
并不真地;您每次都要使用此代码流来检查该条件。不过,有一些方法可以使其更便宜。
我建议不要使用continue
,因为它会导致您反复检查条件,然后失败,这可能不是您想要的。
最简单的操作可能是对 boolean AND语句重新排序。
boolean executed = false;
for(Object o : Collection){
if(!executed && (o fulfills condition)){
executed = true;
}
//other code
}
由于Java的短路特性,您将只检查
!executed
,并且在其第二次及以后的运行中,其结果将为false
,从而“跳过”了条件检查。