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层以内
  • 相关阅读:
    变色龙启动MAC时,错误信息“ntfs_fixup: magic doesn't match:”的解决办法
    显示/隐藏Mac隐藏文件
    Mac 输入法小技巧
    cocos2d popSceneWithTransition()方法
    Mac电脑怎么显示隐藏文件、xcode清除缓存
    Cocos2d-X研究之3.0 场景切换特效汇总
    DevExpresss LookUpEdit详解
    使用First查找集合报错:序列不包含任何匹配元素
    c# devExpress 如何让gridview既可以复制也可以双击跳转
    DevExpress GridView限制列只允许输入数字
  • 原文地址:https://www.cnblogs.com/NewZealand/p/3409904.html
Copyright © 2011-2022 走看看