第十五章 使用条件语句

条件语句用于控制其它语句是否执行

if语句

简单if-then语句

在写if语句的时候请遵循下述指导原则:

  1. 首先写正常代码路径,再处理不常见情况;
  2. 确保对于等量的分支是正确的;
  3. 把正常情况的处理凡在if后面而不要放在else后面;
  4. 让if子句后面跟随一个有意义的语句;
  5. 考虑else子句;
  6. 测试else子句的正确性;
  7. 检查if和else子句是不是弄反了。

if-then-else语句串

使用if-then-else串的时候,请注意下述指导原则:

  • 利用布尔函数调用简化负载的检测;
  • 把最常见的情况放在最前面;
  • 确保所有情况都考虑到了;
  • 如果你的语言支持,请把if-then-else语句替换成其他结构。

case语句

为case选择最有效的排列顺序

  • 按字母顺序或按数字顺序排列各种情况;
  • 把正常的情况放在前面;
  • 按执行频率排列case语句。

使用case语句的诀窍

  • 简化每种情况对应的操作;
  • 不要为了使用case语句而可以制造一个变量;
  • 把default子句只用于检查真正的默认情况;
  • 利用default子句来检测错误;
  • 在C++和Java里,避免代码执行越过一条子句的末尾;
  • 在C++里,在case末尾明确无误地标明需要穿越执行的程序流程。

核对表:使用条件语句

if-then语句

  • [ ] 代码的正常路径清晰吗?
  • [ ] if-then测试对等量分支的处理方式正确吗?
  • [ ] 使用了else子句并加以说明吗?
  • [ ] else子句用得对吗?
  • [ ] 用对了if和else子句,即没把他们用反吗?
  • [ ] 需要执行的正常情况是位于if而不是else子句里吗?

if-then-else-if语句串

  • [ ] 把复杂的判断封装到布尔函数调用里了吗?
  • [ ] 先判断最常见的情况了吗?
  • [ ] 判断包含所有的情况吗?
  • [ ] if-then-else-if是最佳的实现吗?比case语句还要好吗?

case语句

  • [ ] case语句排序得有意义吗?
  • [ ] 每种情况操作简单吗?必要的时候调用了其他子程序吗?
  • [ ] case语句检测的是一个真实的变量,而不是一个只为了滥用case语句而刻意制造的变量吗?
  • [ ] 默认子句用得合法吗?
  • [ ] 用默认子句来检测和报告意料之外的情况了吗?
  • [ ] 在C、C++或者Java里,每一个case的末尾都有一个break吗?

要点

  • 对于简单的if-else语句,请注意if子句和else子句的顺序,特别是用它来处理大量的错误的时候;
  • 对于if-then-else语句串和case语句,选择一种有利于阅读的排序;
  • 为了捕捉错误,可以使用case语句种的default子句,或则使用if-then-else语句串种的最后那个else语句;
  • 各种控制结构并不是生来平等的,请为代码的每个部分选用最合适的控制结构。
原文地址:https://www.cnblogs.com/liam-ji/p/11535513.html