《代碼大全》閱讀筆記-19-一般控制問題
阿新 • • 發佈:2018-04-05
而不是 並且 退出 編寫高質量代碼 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-一般控制問題