1、顺序语句(直线型)
·按照依赖关系进行排列
·让依赖关系变得列明显(如使用变量)
·如果没有依赖关系,设计使用相关的语句尽可能地接近
! 语句之间的依赖关系变得明显吗?(子程序名称、参数、变量、注释、)断言或错误来检查依赖关系
! 如果依赖关系不明显,是否用注释进行了说明?
! 代码容易按自上而下的顺序读吗?
! 相关的语句被组织在一起吗?
! 把相对独立的语句放进稳中有各自的子程序里了吗?
2、条件语句
·首先写正常代码;再处理不常见情况(重点要前,次要在后)
·确保对于等量的分支是正确的
·把正常情况写在if之后,而不要放在else之后
·如果有多if-else-if-else..., 利用布尔函数调用简化复杂的检测
·确保所有情况都考虑到了
if-then
! 代码的正常路径清晰吗?
! if-then测试对等量分支的处理方式正确吗?
! 使用了else子句,并加以说明吗?
! else子句用得对吗?
! 用对了if和else子句,即没有把它们用反吗?
! 需要执行的正常情况是在if中,而不是else子句吗?
if-then-if-then语句串
! 把复杂的判断封装到布尔函数里了吗?
! 先判断最常见的情况了吗?
! 判断包含了所有的情况吗?
! if-then-else-if是最佳的实现吗?比case还要好吗?
3. case语句
·选择最有效的排列顺序
# 按字母顺序
# 把正常情况放在前面
# 按执行频率排列
·简化每种情况的操作
·不要为了使用case而刻意制造一个变量
·default子句来处理真正的默认情况(或检测错误)
·确保每个case有一个break
! case子句排列有意义吗?
! 每种情况的操作简单吗?
! case检测的是一个真实变量,而不是刻意制造出来的变量吗?
! 默认子句用得合法吗?用来检测和报告意料之外的情况了吗?
! 在case之后有break吗?