1. 程式人生 > >4.5 以衛語句取代嵌套條件式

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

邏輯 orm normal red ada result separate 應該 style

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