当前位置:   article > 正文

卫语句取代if嵌套_卫语句 替换if

卫语句 替换if

用卫语句取代if嵌套

在代码中存在过多条件语句的时候,建议把多层条件语句改为卫语句或其他方式

1、源代码:

double GetPayAmount()
{
    double result;
    if (IsDead()) {
        result = DeadAmount();
    }
    else {
        if (IsSeparated()) {
            result = SeparatedAmount();
        } else {
            if (IsRetired()) {
                result = RetiredPayAmount();
            } else {
                result = NormalPayAmount();
            }
        }
    }
    return result;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2、使用卫语句取代嵌套条件式:

double getPayAmount()
{
    if (isDead()) {
        return deadPayAmount();
    }
    if (isSeparated()) {
        return separatedPayAmount();
    }
    if (isRetired()) {
        return retiredPayAmount();
    }
    return normalPayAmount();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3、总结

    函数中的if条件逻辑使人难以看清正常的分支执行路径。使用卫语句表现所有特殊情况。
    所谓卫语句,如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回。这样的单独检查常常被称为“卫语句”。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/377890
推荐阅读
相关标签
  

闽ICP备14008679号