if嵌套更简洁的方法

根据属性1的值分别判断属性2、属性3、属性4得到结果集

img


现在的方法

  if(属性1 == xxxx){
      if(属性2){}
      if(属性3){}
      if(属性4){}
  }else{
    if(属性2){}
    if(属性3){}
    if(属性4){}
  }

有没有一种更简洁的方法,在判断之后还要做不同的操作。

没有,这样就是最简洁的,研究奇奇怪怪的算法,比如矩阵什么的反而更麻烦了,一般人都读不懂

如果不考虑后面结果的数量,那么大概也就是这么写了。比较正统规矩
如果只有4个结果,那么根据结果的条件进行判断,即if(属性1==XXXX && 属性2 == XXXX) 结果1;

你这图跟你的代码也不是同一个逻辑呀
按图里的逻辑,应该是这样
if(属性1==1)
{
if(属性2)...
}
else if (属性1==2)
{
if(属性3)...
}
else
{
if(属性4)...
}

1.首先可以从嵌套层级进行优化,外部 if else 是不是可以通过 ?:运算符进行处理

示例:属性1 == xxxx?方法一 :方法二

2.代码块抽取成方法

if(属性2){} => confition1()
if(属性3){}=> confition2()
if(属性4){}=> confition3()

3.根据条件对步骤2的方法,进行组合使用

代码看着乱,就是因为嵌套层级多。减少嵌套层级是第一步要做的