[Code Complete]Part4:Stament(CH14,15,16,17,18,19)
2013-06-23 18:55
531 查看
1. 尽量编写直线型的代码,还需要说明语句之间的代码关系。
Ø 这个例子中,使用参数表示了语句之间的依赖关系。
Ø 希望能够自上而下的进行阅读代码。
Ø 如果依赖不明显需要写一些注释说明。
2. 在If-else语句中,将处理正常情况的语句放在前面。
3. 在多个if-else语句中,将出现概率最高的放在前面。
4. Case的语句,需要注意case的顺序需要有顺序。
Ø 按字母顺序,正常情况放前面,执行频率,Ø Default不能随便用,必须是真正需要default的时候才用。不能为了抓住异常就用。
Ø 不要为了switch创建对象,这样的情况用if-else的连接更好。
5. While循环中,在开头或者结尾的时候操作循环终止条件,保证会执行到。一般开头。
6. 可以多使用For循环,但是不能乱用,下面是个例子
7. 对于循环终止条件复杂的语句,可以使用有意义的变量名来代替复杂的表达式,或者使用子程序。
8. 在for循环中,需要避免依赖执行完之后,依赖下标的代码。这种情况比较普遍。
9. 在循环中时,将continue和break语句放在开头是比较好的做法。
10. 限制循环的长度,一般小于50,必要时使用子程序。
11. 在函数中尽量减少return语句的数量。但是针对,例如函数开头检查有效性等(防卫子句),有助于提高可读性的return,还是多一点好。
12. 递归函数要限定在一个子函数内部。
13. 表驱动法
针对某些需要查询等的问题,表驱动是不错的解决方案,可以有效降低复杂度。帅气的解决方案:
Ø 需要注意的是,创建查询键值的时候需要注意。可以考虑将转换过程写成子程序。
Ø 降低空间复杂度,可以考虑建立索引。
Ø 对于类似ABCD对应分数的查询,可以使用阶梯查询,外加二分查找的方法实现。
14. 布尔表达式
Ø 简化复杂的布尔表达式(子函数,有意义变量)Ø 不用0,1表示。
Ø 尽量使用肯定的布尔表达式,作为判断条件。
Ø 加括号,不丢人。
Ø 短路的时候,需要考虑顺序问题。比如判断NULL的放在前面。
Ø 按数轴写条件。
Ø 把常量写在左边,一个是防止写错“==”,另一个防止null point exception
15. 减少子函数的复杂度,减少嵌套和分支语句。嵌套小于3层,分支小于5句。
相关文章推荐
- |1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20所有这些字符串,把它的数字一个个剥离??
- 现有杂乱无序的1-20二十个数,这二十个数为:1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5,20,试依次求出相邻四个数之和的最大和最小值
- Install Google Chrome in Fedora 19 / 18 / 17 / 16 / 15 / 14
- P51第二章练习题14、15、16、17、18、19、20
- Node与Express开发:13 14 15 16 17 18 章
- vb写的考试大题答案14,15,16,17,18
- 180中国跳棋(12)186(13)191(14)196(15)201(16)205(17)209.5(18)
- int a[] = {12,13,12,13,19,18,15,12,15,16,17},要求对数组a进行排序,要求时间复杂度为O(N)
- 找规律 (1) 1, 2, 4, 7, 8, 11, 14, 16, 17, 19, 22, 26, 28, 29, 41, 44, ?
- 数据结构13,15,16,18,19
- Cracking the Coding Interview – ch16,17,18
- GradleUserGuide中文版 16)Ant插件 17)Logging 18)Daemon 19)Plugins
- Fedora 15 16 17 18 20无线网卡驱动安装
- C程序设计语言 1-16 1-17 1-18 1-19
- 模版引擎详解-兄弟连新版thinkphp 15、16、17、18
- 时间计划(15~17,18,19)
- 13、14、15、16、17
- 成都电子地图 高清15、17、19级别 谷歌电子地图资源