4.5 以衛語句取代嵌套條件式
阿新 • • 發佈:2017-08-15
邏輯 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 { 16if (IsRetired()) 17 { 18 result = RetiredPayAmount(); 19 } 20 else 21 { 22 result = NormalPayAmount(); 23 } 24 } 25 } 26 27 return result; 28 }
【2】以衛語句取代嵌套條件式
1double 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 以衛語句取代嵌套條件式