有没有一种方法可以简化下面的代码,可以将condition1和condition2组合在一起,但是我希望else语句为每个步骤打印不同的消息。
if(condition1){
if(condition2){
if(condition3){
//do something
}
}
else{
//sout condition2 failed
}
}
else{
//sout condition1 failed
}
答案 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);