Roh*_*itT 0 java if-statement control-flow
CONDITION1 和 CONDITION2 是字符串变量,可以是 NULL 或非 NULL。比如说我有 2 个变量,比如 CONDITION1 和 CONDITION2。如果 CONDITION1 不为 NULL,则调用 METHOD1(),如果它返回 TRUE,则检查 CONDITION2 是否为 NOT NULL,然后调用 METHOD2()。如果 CONDITION1 为 NULL,那么我检查 CONDITION2 是否为 NULL。如果它不是 NULL,那么我调用 METHOD2()。如果 CONDITION1 不是 NULL,那么我调用 METHOD1() 然后我检查 CONDITION2 是否为 NULL。如果它是 NULL 那么我不调用 METHOD2()。
两种方法都返回一个布尔值。对或错。
下面是使用 if else if 语句的代码。
有更好的方法吗?
//Fail并// process further表示相同的代码。
if(CONDITION1 != null && CONDITION2 != null){
if(METHOD1()){
if(METHOD2()){
// process further
}else{
//Fail
}
}else{
//Fail
}
}else if(CONDITION1 != null && CONDITION2 == null){
if(METHOD1()){
// process further
}else{
//Fail
}
}else if(CONDITION1 == null && CONDITION2 != null){
if(METHOD2()){
// process further
}else{
//Fail
}
}else{//Both are NULL
// process further
}
Run Code Online (Sandbox Code Playgroud)
只要你所有// process further代表相同的代码,并且你所有//Fail代表相同的代码,正如你所说,那么你所做的就相当于:
if ((CONDITION1==null || METHOD1())
&& (CONDITION2==null || METHOD2())) {
// process further
} else {
// fail
}
Run Code Online (Sandbox Code Playgroud)