一旦满足条件,跳过if语句

Eri*_*uan 2 java loops

这个问题来自我的OCD-ish性质.说我有这段代码.

boolean executed = false;
for(Object o : Collection){
    if((o fulfills condition) && executed  == false){
        //do something
        executed  = true;
    } 
    //other code
}
Run Code Online (Sandbox Code Playgroud)

如果规范只要求if语句执行一次,是否有更好的方法来跳过检查 if条件而不是设置executed为true?令我困扰的是,在if语句已经执行之后,循环需要检查if条件每个循环迭代.

执行布尔值的要点是防止if语句再次执行.我不知道这是可能的,但我希望把它一步,并跳过检查,如果有条件的一次executedtrue.

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

Mak*_*oto 6

并不是的; 每次使用此代码流时,您都无法检查条件.但是,有一些方法可以降低成本.

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

最简单的方法可能是重新排序布尔AND语句.

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

由于Java的短路性质,您将只检查!executed,并在其第二次和未来的运行中评估false,从而"跳过"条件检查.