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】以衛語句取代嵌套條件式spa

 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】總結code

函數中的條件邏輯令人難以看清正常的分支執行路徑。使用衛語句表現全部特殊狀況。orm

謂衛語句,若是某個條件極其罕見,就應該單獨檢查該條件,並在該條件爲真時馬上從函數中返回。這樣的單獨檢查經常被稱爲「衛語句」。blog

 

Good Good Study, Day Day Upget

順序 選擇 循環 總結class

相關文章
相關標籤/搜索