我有两个条件要检查,如果一个条件为真,我需要执行一些代码,如果另一个条件为真,我需要执行一些不同的代码。但是,如果任一为真,那么除了特定代码之外,我还需要执行一段通用代码。
请注意,两个条件只能满足其中一个,不能同时满足。
所以,我可以通过三种方式做到这一点:
方法一
if (condition1 || condition2){
//common code here
commonCode();
moreCommonCode();
//Dig a bit deeper to see which one was true
if (condition1){
//Carry out some code here specific to condition1
specificToCondition1();
moreCondition1Stuff();
}
else {
//Carry out some code here specific to condition2
specificToCondition2();
moreCondition2Stuff();
}
}
方法2
if (condition1){
specificToCondition1();
moreCondition1Stuff();
}
else if (condition2){
specificToCondition2();
moreCondition2Stuff();
}
if (condition1 || condition2){
commonCode();
moreCommonCode();
}
方法3
if (condition1){
specificToCondition1();
moreCondition1Stuff();
commonCode();
moreCommonCode();
}
else if (condition2){
specificToCondition2();
moreCondition2Stuff();
commonCode();
moreCommonCode();
}
在方法1和方法2中,我需要检查条件两次。
在方法3中,我必须复制公共(public)代码。
我是否遗漏了一些东西,有没有办法做到这一点,而我不必重复代码或检查条件两次?
最佳答案
方法4(公共(public)部分使用私有(private)方法)
因此,除了公共(public)方法的调用之外,没有代码重复。
if (condition1) {
specificToCondition1();
moreCondition1Stuff();
execCond1AndCond2Stuff();
}
else if (condition2) {
specificToCondition2();
moreCondition2Stuff();
execCond1AndCond2Stuff();
}
void execCond1AndCond2Stuff() {
commonCode();
moreCommonCode();
}
关于Java if语句有2个条件和通用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241030/