卫语句取代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;
}

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

double getPayAmount()
{
    if (isDead()) {
        return deadPayAmount();
    }
    if (isSeparated()) {
        return separatedPayAmount();
    }
    if (isRetired()) {
        return retiredPayAmount();
    }
    return normalPayAmount();
}

3、总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值