结构化编程的三重境界:见山还是山:朴素又正确的逻辑
来源:互联网 发布:java聊天机器人源代码 编辑:程序博客网 时间:2024/05/16 09:48
在上述的隔夜退房的逻辑代码中,我们用了五个嵌套,其中有五个计算,但实际上只有3种不同的计算,在这样的模式下,我们值得思考,是不是代码过于冗余了。
现在我们把隔夜代码改为如下
Code
不必惊讶,你仔细看看,以上的代码就完成了我们原先冗余的隔夜退房逻辑,而这样的逻辑和我们原先描述的退房业务逻辑正好在语义上完全符合。
通过正确的结构化编程,我们可以消除原先复杂冗余的代码,让程序更加清晰可靠。
下面添加了对日期合法性(入住日期不能大于退房日期)的判断,但系统的整体也没有比我们原先冗余逻辑要复杂。
Code
上述代码中的
days += (outdate - indate).TotalHours <= 12 ? 0.5 : 1;
采用了三目表达式,该表达式的含义是:如果(outdate - indate).TotalHours <= 12的逻辑为真则返回0.5,否则返回1。简化了if else的语句。
所以说一段优秀的代码必然是具有高度的可维护性,而可维护性的代码其实就是能最朴素的表达我们业务的代码,不过这个朴素描述应该是正确演绎了逻辑的见山不是山的境界了。
- 结构化编程的三重境界:见山还是山:朴素又正确的逻辑
- 结构化编程的三重境界:见山不是山:正确但冗余的逻辑
- 结构化编程的三重境界:见山是山:朴素的直观逻辑编程
- C++编程->异常处理的三重境界
- PPT的三重境界
- 人生的三重境界
- 婚姻的三重境界
- 程序员的三重境界
- 留学的三重境界
- 股票的三重境界
- 算法的三重境界
- 人生的三重境界
- 人生的三重境界
- 测试的三重境界
- LAYOUT的三重境界
- 技术的三重境界
- 程序员的三重境界
- 程序员的三重境界
- Random:随机值的处理:发牌游戏
- ArrayList:可变数组
- Hashtable:仅有两列的表
- Array:一组数据的有序集合
- 从一个帖子看部分大学生的学习心态
- 结构化编程的三重境界:见山还是山:朴素又正确的逻辑
- 结构化编程的三重境界:见山不是山:正确但冗余的逻辑
- 结构化编程的三重境界:见山是山:朴素的直观逻辑编程
- 数据类型转换:1人民币+1美元=?
- 值类型和引用类型和数据大小排名
- 异常:Exception
- 模块化编程:函数定义
- 结构化编程:跳转控制break、continue
- [BD-EXAM]20091106在一棵一般的二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个