zoukankan      html  css  js  c++  java
  • C语言循环剖析(转载)

    一、if、else
    float变量与“零值”进行比较:
      float fTestVal = 0.0;
      if((fTestVal >= -EPSINON) && (fTestVal <= EPSINON));   // EPSINON为之前定义好的精度
      float和double类型的数据都是有精度限制的,这样直接拿来和0.0比,当然不正确
      如果一个数落在[0.0- EPSINON,0.0+ EPSINON]这个闭区间内,我们认为在某个精度内他的值和零值相等,否则不相等。
      扩展一下,把0.0替换为任何一个你想比较的浮点数,那我们就可以比较任意两个浮点数的大小了,当然是在这个精度范围内。
      同时,也不要在很大的浮点数和很小的浮点数之间进行运算
    if的其他注意事项:
      先处理正常情况,再处理异常情况
      在编写代码时要使得正常情况的执行代码清晰,确认那些不常发生的异常情况处理代码不会掩盖正常的执行路径,把正常情况放在if后面而不是else后面
     
    二、switch、case
    1、每个switch语句后绝对不要忘了加break,否则会导致多个分枝重叠(除非有意使多分枝重叠)
    2、最后必须使用default语句,即使程序真的不需要default处理,但也要应该保留语句:
                default:
                break;
    3、case后面的语句只能是整型或者字符型的常量或者常量表达式
    4、排序问题:按字母或者数字顺序排序各条case语句
              switch(variable)
             {
                     case   'A':
                              //program code 
                              break;
                     
    case   'B':
                              //program code 
                              break;
                     
    case    'C':
                              //program code 
                              break;

                     default: 
                              break;
              }
    5、如果有多个正常情况或者异常情况,把正常情况放在前面
    6、按执行频率排列case语句,把最常执行的情况放在前面,而把最不常执行的情况放在后面
    7、将default子句只用于检查真正地默认情况
     
    三、do、while、for
    1、break关键字表示终止本层循环,continue表示终止本轮循环,进入下一轮循环
    2、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU切跨循环层的次数
    3、把循环嵌套控制放在3层以内
  • 相关阅读:
    我要好offer之 二叉树大总结
    我要好offer之 字符串相关大总结
    楼层扔鸡蛋问题[转]
    Linux System Programming 学习笔记(十一) 时间
    Linux System Programming 学习笔记(十) 信号
    Linux System Programming 学习笔记(九) 内存管理
    Linux System Programming 学习笔记(八) 文件和目录管理
    Linux System Programming 学习笔记(七) 线程
    Linux System Programming 学习笔记(六) 进程调度
    APUE 学习笔记(十一) 网络IPC:套接字
  • 原文地址:https://www.cnblogs.com/NewZealand/p/3409904.html
Copyright © 2011-2022 走看看