《代码大全》阅读笔记-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个,那么能提出不重新设计的理由吗?

要点

  • 使布尔表达式简单可读,将非常有助于提高你的代码质量
  • 深层次的嵌套使得子程序变得难以理解。所幸的时,你可以相对容易的避免这么做
  • 结构化编程是一种简单并且仍然适用的思想:你可以通过把顺序、选择和循环三者组合起来而开发任何程序
  • 将复杂度降低到最低水平是编写高质量代码的关键
原文地址:https://www.cnblogs.com/taceywong/p/8723393.html