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层以内
  • 相关阅读:
    java Socket Tcp 浏览器和服务器(二)
    java Socket Tcp 浏览器和服务器(一)
    java Socket Tcp示例三则(服务端处理数据、上传文件)
    java Socket Udp聊天
    centos 图形界面和命令行界面切换
    python 文件中的中文编码解决方法
    PostgreSQL与MySQL比较(转)
    Python 的开发环境
    Windows 下 pip和easy_install 的安装与使用
    Linux 下的下载文件命令
  • 原文地址:https://www.cnblogs.com/NewZealand/p/3409904.html
Copyright © 2011-2022 走看看