码迷,mamicode.com
首页 > 其他好文 > 详细

4.5 以卫语句取代嵌套条件式

时间:2017-08-15 12:38:20      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:选择   代码   return   color   16px   size   else   family   dea   

【1】原代码

 1 double GetPayAmount()
 2 {
 3     double result;
 4     if (IsDead())
 5     {
 6         result = DeadAmount();
 7     }
 8     else
 9     {
10         if (IsSeparated())
11         {
12             result = SeparatedAmount();
13         }
14         else
15         {
16             if (IsRetired())
17             {
18                 result = RetiredPayAmount();
19             }
20             else
21             {
22                 result = NormalPayAmount();
23             }
24         }
25     }
26 
27     return result;
28 }

【2】以卫语句取代嵌套条件式

 1 double getPayAmount()
 2 {
 3     if (isDead())
 4     {
 5         return deadPayAmount();
 6     }
 7     if (isSeparated())
 8     {
 9         return separatedPayAmount();
10     }
11     if (isRetired())
12     {
13         return retiredPayAmount();
14     }
15 
16     return normalPayAmount();
17 }

【3】总结

函数中的条件逻辑使人难以看清正常的分支执行路径。使用卫语句表现所有特殊情况。

谓卫语句,如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回。这样的单独检查常常被称为“卫语句”。

 

Good Good Study, Day  Day Up.

顺序 选择  循环 总结

4.5 以卫语句取代嵌套条件式

标签:选择   代码   return   color   16px   size   else   family   dea   

原文地址:http://www.cnblogs.com/Braveliu/p/7364369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!