1. 程式人生 > >《代碼大全》閱讀筆記-19-一般控制問題

《代碼大全》閱讀筆記-19-一般控制問題

而不是 並且 退出 編寫高質量代碼 row 超過 10個 body mage

布爾

除了最簡單、要求語句按照順序執行的控制結構之外,所有的控制結構都依賴於布爾表達式的求值

技術分享圖片

嵌套

減少嵌套層次的技術列表:

  • 重復判斷一部分條件
  • 轉換成if-then-else
  • 轉換成case語句
  • 把深層嵌套的代碼提取城單獨的子程序
  • 使用對象和多態派分
  • 用狀態變量重寫代碼
  • 用防衛子句來退出程序,從而使得代碼的主要路徑更為清晰
  • 使用異常
  • 完全重新設計深層嵌套的代碼

結構化編程

結構化編程的核心思想:一個應用程序應該單一入口、單一出口。
其中涉及到的關鍵詞有:break,continue、throw、catch、return
結構化編程的三個組成部分:順序、選擇、叠代

復雜度

技術分享圖片

技術分享圖片

核對表(控制結構相關事宜)

  • 表達式中用的時true和false而不是1、0嗎?
  • 布爾值和true以及false作比較是隱式進行的嗎?
  • 對數值作比較是顯示進行的嗎?
  • 有沒有通過增加新的布爾變量、使用布爾函數和決策表來簡化表達式?
  • 布爾表達式是肯定形式表達的嗎?
  • 括號匹配嗎?
  • 在需要用括號來明確的地方都是用了括號了嗎?
  • 把邏輯表達式全括起來了嗎?
  • 判斷是按照數軸順序編寫的嗎?
  • 如果適當的話。Java中的判斷用的時a.equals(b)方式,而不是用a==b方式?
  • 空語句表述的明顯嗎?
  • 用重新判斷部分條件、轉換成if-then-else或case語句、或把嵌套代碼獨立成單獨子程序、換用一種更面向對象的設計或者其他改進方法來簡化嵌套語句?
  • 如果一個子程序的決策點超過10個,那麽能提出不重新設計的理由嗎?

要點

  • 使布爾表達式簡單可讀,將非常有助於提高你的代碼質量
  • 深層次的嵌套使得子程序變得難以理解。所幸的時,你可以相對容易的避免這麽做
  • 結構化編程是一種簡單並且仍然適用的思想:你可以通過把順序、選擇和循環三者組合起來而開發任何程序
  • 將復雜度降低到最低水平是編寫高質量代碼的關鍵

《代碼大全》閱讀筆記-19-一般控制問題