4.5 以衛語句取代嵌套條件式


【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

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM