《代码大全》阅读笔记-19-一般控制问题
布尔
除了最简单、要求语句按照顺序执行的控制结构之外,所有的控制结构都依赖于布尔表达式的求值
嵌套
减少嵌套层次的技术列表:
- 重复判断一部分条件
- 转换成if-then-else
- 转换成case语句
- 把深层嵌套的代码提取城单独的子程序
- 使用对象和多态派分
- 用状态变量重写代码
- 用防卫子句来退出程序,从而使得代码的主要路径更为清晰
- 使用异常
- 完全重新设计深层嵌套的代码
结构化编程
结构化编程的核心思想:一个应用程序应该单一入口、单一出口。
其中涉及到的关键词有:break,continue、throw、catch、return
结构化编程的三个组成部分:顺序、选择、迭代
复杂度
核对表(控制结构相关事宜)
- 表达式中用的时true和false而不是1、0吗?
- 布尔值和true以及false作比较是隐式进行的吗?
- 对数值作比较是显示进行的吗?
- 有没有通过增加新的布尔变量、使用布尔函数和决策表来简化表达式?
- 布尔表达式是肯定形式表达的吗?
- 括号匹配吗?
- 在需要用括号来明确的地方都是用了括号了吗?
- 把逻辑表达式全括起来了吗?
- 判断是按照数轴顺序编写的吗?
- 如果适当的话。Java中的判断用的时a.equals(b)方式,而不是用a==b方式?
- 空语句表述的明显吗?
- 用重新判断部分条件、转换成if-then-else或case语句、或把嵌套代码独立成单独子程序、换用一种更面向对象的设计或者其他改进方法来简化嵌套语句?
- 如果一个子程序的决策点超过10个,那么能提出不重新设计的理由吗?
要点
- 使布尔表达式简单可读,将非常有助于提高你的代码质量
- 深层次的嵌套使得子程序变得难以理解。所幸的时,你可以相对容易的避免这么做
- 结构化编程是一种简单并且仍然适用的思想:你可以通过把顺序、选择和循环三者组合起来而开发任何程序
- 将复杂度降低到最低水平是编写高质量代码的关键
还真有人点开啊🤣随意随意😂