在开发过程中经常遇到这种问题,一层层的条件判断,让人很头疼,这种结构怎么处理比较合理呢?

解决方案 »

  1.   

    用 switch case 结构代替 if else 结构,可增强可读性
    适当的调整判断的次序,可减少嵌套的层次使用逻辑表达式赋值,虽然降低的可读性。但可使结构大为简化
      

  2.   

    针对一层层嵌套的结构,目前我是没办法替换成switch case结构。我大致列下我说的这种结构好了:if (empty($a))
    {
    $b=function();
    if($b==1)
    {
    if()
    {
    ……
    }
    }
    elseif($b=2)
    {

    }else
    {
    }
    }
    if有六七层……
      

  3.   

    if (empty($a)) {
      switch(function()) {
        case 1:
          break;
        case 2:
          break;
        case 3:
          break;
        ....
        default:
      }
    }
      

  4.   

    还是视乎程序的结构
    在逻辑式优化、严谨的前提下层层判断运行速度会比较快的如果是面向对象或者习惯模块式编程的话,可以把各种逻辑式组合成单一参数(例如整数)
    再用平行的逻辑判断(switch、object等)写出来
    具有共性的代码段写成function或对象的方法,在各个模块按需调用其中两种常见例子是
    1.参数是整数(由位运算得出),分支时位运算反向判断
    2.类的设计模式这种情况很适合计算参数和执行参数由不同的人写代码