这个问题来自我的强制症性质。说我有这段代码。

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语句再次执行。我不确定这是否可行,但是我想更进一步,如果executedtrue,则跳过是否有条件的检查。

编辑:满足条件后,我仍然需要完成循环。

最佳答案

并不真地;您每次都要使用此代码流来检查该条件。不过,有一些方法可以使其更便宜。

我建议不要使用continue,因为它会导致您反复检查条件,然后失败,这可能不是您想要的。

最简单的操作可能是对 boolean AND语句重新排序。

boolean executed = false;
for(Object o : Collection){
    if(!executed && (o fulfills condition)){
        executed  = true;
    }
    //other code
}

由于Java的短路特性,您将只检查!executed,并且在其第二次及以后的运行中,其结果将为false,从而“跳过”了条件检查。

09-27 07:03