if 条件判断语句

需求背景:

按照人的年纪计算票价。

  • 如果一个人不到10岁,不要钱
  • 如果这个人超过10岁,但是不到18岁,5元
  • 如果超过18岁。10元。

参考代码如下:

    public int getPrice(int age) {
        if (age <= 10) {
            return 0;
        }

        if (age > 10 && age <= 18) {
            return 5;
        }

        return 10;
    }

这段代码的逻辑是完全正确的。但是不推荐这样写代码。

先从计算机性能去考虑整件事,如果这个人超过了18岁,那么计算机会先做

  1. age <= 10
  2. age > 10
  3. age <= 18

然后才返回10。

正确代码如下:

    public int getPrice(int age) {
        if (age <= 10) {
            return 0;
        } else if (age <= 18) {
            return 5;
        } else {
            return 10;
        }
    }
这样计算机比较结果如下。
  1. age <= 10
  2. age <= 18

其实比较性能并不是我想去做表达的。两段代码给我的感觉是,第二段代码是说根据年龄不同做不一样的处理。

但是第一段代码的两个 if 并没有任何关系。我是看到判断的内容以后才知道他也是去根据年龄去做判断的。如果逻辑更加复杂的话,很难再脑子中判断是否所有的情况都考虑清楚了。

所以在开发过程中,重要的是把问题规划清楚,然后尽量用if else 去描述问题。而不是根据需求去把所有的if 罗列出来。那样思考的过程会很难,也难免出错。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值