Java if语句有2个条件和通用代码

标签 java if-statement multiple-conditions

我有两个条件要检查,如果一个条件为真,我需要执行一些代码,如果另一个条件为真,我需要执行一些不同的代码。但是,如果任一为真,那么除了特定代码之外,我还需要执行一段通用代码。

请注意,两个条件只能满足其中一个,不能同时满足。

所以,我可以通过三种方式做到这一点:

方法一

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/

相关文章:

mysql 通过多个条件选择行

python - Dask "Column assignment doesn' t 支持类型 numpy.ndarray"

java - AngularJS - Java EE REST 安全性

java - Singleton/Static 会影响多线程 Java 应用程序的性能吗?

java - 将 TextField 的值设置为随机数

php - 具有多个条件的 OData 查询 $filter

java - 通用类 - getClass().getName()

java - 动物园管理员启动错误:'JAVA_HOME error in zookeeper.out'

java - 解决一个java谜语

oracle - 使用 if 语句 PL/SQL 更新表