遇到这样的问题,if非常多,且几乎都不是判断同一条件的,导致代码非常臃肿。例如:
if(a){
   if(b){
    ...
   else{
   ...
    }
}else{
   if(b){
   ...
   else{
   ...
    }}因为a、b两个条件不相交,且得考虑2*2=4种情况,代码很烂,不知道有什么好的办法解决

解决方案 »

  1.   

    用switch   case或条件表达式int   c=(a <b)?a:b;   
      

  2.   

    用switch........case语句应该能代替吧
    这个结构会简单点,不过得看你需求能不能代替了
    if语句效率还是最高的虽然看的臃肿点
      

  3.   

    根据你的代码
    当a为true的时候要执行
    if(b){
      ...
    else{
      ...

    当a为false的时候也执行这段代码~
    那a的true/false也就失去了意义了啊package demo;public class MultiCheck { interface Checker {
    public void check();
    }

    static class Checker1 implements Checker {
    @Override
    public void check() {
    System.out.println("条件a为true时的check代码");
    }
    }

    static class Checker2 implements Checker {
    @Override
    public void check() {
    System.out.println("条件a为false时的check代码");
    }
    } // 当是满足条件A的时候,就生成Checker1
    // 这里就相当于条件判断的第一层(a=true or false),应该是根据逻辑来生成相应的Checker,但这里不
    // 清楚你们的条件,所以就写成了这样
    public static Checker getChecker() {
    boolean a = true;
    if(a) {
    return new Checker1();
    } else {
    return new Checker2();
    }
    }

    public static void main(String[] args) {
    Checker checker = getChecker();
    checker.check();
    }
    }
    上面的代码只是我的一个想法,你可以参考一下
      

  4.   

    逻辑上无法优化的话,考虑一下设计模式,不过只是代码上的结构优化一下,骨子里的ifelse还是逃不掉的