zoukankan      html  css  js  c++  java
  • Code Complete读书笔记04

    2012-05-05

    Chapter16

    1、预先不知道循环要迭代多少次——建议使用while循环

          需要一个执行次数固定的循环——建议使用for循环

    2、对于for,在循环结束后不要滥用下表的最终取值

         例如,for(i=0;i<length;i++)

                            {……}

                            process(i);        //此处滥用了i

                  正解:在循环体内某个适当地方将最终取值赋给某个变量带出

    3、对于while,i++之类的表达式目的不是完成循环工作,而是控制循环;此类语句放在循环开始或末尾

    4、一个循环只做一件事

    5、在循环(尤其是多维数组)时,用有意义的名字来避免I,j,k等命名

    6、把循环下标变量的作用域限制在循环内

             对于for(int i=0;i<10;i++)

                       …….

                       for(int i=0;i<50;i++)

                       ……

             不同的编译器会有不同的结果,如

    1,可能允许第二个循环中的i

    2,可能不允许第二次声明i,提示声明了2次

    7、循环尽可能短,以便一目了然:50行以内(一页纸以内),最好15-20行以内

             嵌套限制在3层以内

    Chapter17

    1、早返回或早退出,来简化复杂的错误处理(先处理不正常的情况,即直接return的情况)

    2、goto语句优缺点

             缺点:1,含有goto的代码很难安排好格式,让缩进体现逻辑结构变困难

                       2,破坏编译器的优化特性

                       3,违背代码自上而下运行的原则,逻辑纠错变困难,可能会产生某些执行不到                          的代码

             优点:1,减少重复的代码(如果位置恰当)

                       2,某些情况下,使用goto会让代码运行速度更快

    总结:少数情况下,goto是编写可读性和可维护代码的最佳办法,但这种情况非常罕见。除非万不得已,不要用goto

    3、递归可以很优雅的解决一部分问题,使用也要倍加小心;避免用递归写斐波那契或阶乘(太慢);使用递归时考虑栈溢出的情况

  • 相关阅读:
    基于RMAN从活动数据库异机克隆(rman duplicate from active DB)
    包含min函数的栈
    栈的链表实现
    HDU 2196 树形DP Computer
    linux之access函数解析
    [置顶] sqlplus 使用笔记
    仿新浪微博登陆邮箱提示效果!
    找出数组中出现奇数次的元素<异或的应用>
    SOA体系结构基础培训教程-规范标准篇
    一个寻找.jar 和.zip文件中class文件的工具
  • 原文地址:https://www.cnblogs.com/yangtianxing/p/2490541.html
Copyright © 2011-2022 走看看