- 在使用if-else判斷式時,先處理肯定條件;先處理簡單的情況,必較能在畫面中同時呈現if與else區塊,在閱讀上很有幫助;先處理比較有趣或明顯的情況
- 縮短其他人理解程式所需的時間,比減少程式碼行數來得重要
- 只有在最簡單的情況下使用三元運算子(ternary operator),複雜的情況還是盡量使用if / else
- 避免使用do / while loop
- C++的創造者Bjarne Stroustrup說,在我的個人經驗裡,do / while 敘述經常是錯誤與誤解的來源,我寧願把條件式列在最前面,總而言之,我會盡量避免使用do / while 敘述
- 修改程式碼時要以全新的角度審視,退一步以整體的角度考慮程式碼
- 盡量消除loop中的巢狀結構,因為巢狀結構可讀性較差
Example1. 如果是很簡單的情況,用ternary operator是ok的
1 | timeStr += (hour >= 12) ? "pm" : "am"; |
若是遇到較複雜的狀況,如下:
1 | int result = exponent >= 0 ? mantissa * (1 << exponent) : mantissa * (1 << -exponent); |
則建議將上述的表示方式改用if-else的方式表達
1 2 3 4 5 | if (exponent >= 0) { result = mantissa * (1 << exponent); } else { result = mantissa * (1 << -exponent); } |
Example2. 盡量避免用do-while
如原本為do-while的表示方式
1 2 3 4 5 | int sum = 0; int count = 1; do { sum += count++; } while (count <= 10); |
除非有什麼特別原因,盡量改成while-loop
1 2 3 4 | int sum = 0, count = 1; while (count <= 10) { sum += count++; } |
No comments:
Post a Comment