简化Java中复杂的if语句

时间:2019-03-29 20:18:27

标签: java if-statement

有没有一种方法可以简化下面的代码,可以将condition1和condition2组合在一起,但是我希望else语句为每个步骤打印不同的消息。

if(condition1){
    if(condition2){
        if(condition3){
            //do something
        }
    }
    else{
       //sout condition2 failed
    }
}
else{
    //sout condition1 failed
}

4 个答案:

答案 0 :(得分:3)

我能想到的最简单的是

if(condition1 && condition2 && condition3){
    //do something
}
else if(!condition1){
    //sout condition1 failed
}
else if(!condition2){
    //sout condition2 failed
}

答案 1 :(得分:1)

最简单的方法是翻转条件1和2,因此它成为if-elseif构造,不需要深度嵌套的块:

if (! condition1) {
    //sout condition1 failed
} else if (! condition2) {
    //sout condition2 failed
} else if (condition3) {
    //do something
}

如果您还希望else的{​​{1}}块(问题代码缺失),也可以翻转条件3。

condition3

答案 2 :(得分:0)

合并条件2和3

if(condition1){
    if(condition2 && condition3){
       //do something
    }
    else if (!condition2){
       //sout condition2 failed
    }
}
else {
    //sout condition1 failed
}

您还可以像

一样先检查错误条件
if(!condition1){

    //sout condition1 failed

} else if(!condition2){

    //sout condition2 failed

} else if(condition3){
  //do something
}

答案 3 :(得分:0)

if(condition1 && condition2 && condition3){
    //do something
 }

 String failed = !condition1? "condition1 failed":
                 !condition2? "condition2 failed" : "";

 System.out.println(failed);