`
bcyy
  • 浏览: 1832117 次
文章分类
社区版块
存档分类
最新评论

【编程规范系列】if 语句中的关系表达式/逻辑表达式

 
阅读更多

1、布尔变量的比较:

if (flag)

if (!flag)

用逻辑非!运算符,因为它适合布尔变量。

2、整型变量的比较:

if (value == 0) 

if (value != 0)

就用普通的==和!=运算符。

3、浮点型变量的比较:

if (x == 0.0)  // 错误的可能极大

if ((x>=-EPSINON) && (x<=EPSINON))

尽量避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式,因为浮点变量发生截断误差的可能性极大,比如1/3*3结果就是0.9999999...,若再来与1比较当然就有问题了!

这点我是深有体会的,曾做过一道计算几何的题目,就遇到了这个问题,我用的是下面的方法:

if (abs(x) < EPS)
    x = 0;

既然x接近0,就直接置为0吧。

4、指针变量的比较:

if (p == NULL) // p与NULL显式比较,强调p是指针变量
if (p != NULL)

参考自林锐的《高质量程序设计指南——C++/C语言》4.3if语句

分享到:
评论

相关推荐

    跟老男孩学Linux运维:Shell编程实战

    / 976.3 字符串测试表达式 / 1026.4 整数二元比较操作符 / 1056.5 逻辑操作符 / 1086.6 测试表达式test、[]、[[]]、(())的区别总结 / 120第7章 if条件语句的知识与实践 / 1217.1 if条件语句 / 1217.2 if条件...

    java编程规范(第三版)

    14.9 if语句 281 14.10 assert语句 282 14.11 switch语句 285 14.12 while语句 288 14.13 do语句 289 14.14 for语句 291 14.15 break语句 294 14.16 continue语句 296 14.17 return语句 297 14.18 throw...

    C语言编程规范详细解析

    3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。 3.4 用 CASE 实现多路分支。 3.5 避免从循环引出多个出口。 3.6 函数只有一个出口。 3.7 不使用条件赋值语句。 3.8 避免不必要...

    linux C编程实战

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linuxC编程实战.part2.rar(文件已加密)

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linux C编程实战 电子书part2

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linux C编程实战 电子书part3

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linux C编程实战 电子书part4

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linux C编程实战 电子书part5

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linux C编程实战 电子书part1

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linuxC编程实战.part5.rar

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linuxC编程实战.part3.rar

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    linuxC编程实战.part4.rar

     3.2.2 逻辑运算符与逻辑表达式   3.2.3 if语句   3.2.4 switch语句   3.3 循环控制结构   3.3.1 while语句   3.3.2 do...while语句   3.3.3 for语句   3.3.4 break语句和continue语句   ...

    微软C#语言规范,C#语言教程中文版

    5.3.3.3 表达式语句 98 5.3.3.4 声明语句 98 5.3.3.5 if 语句 98 5.3.3.6 switch 语句 99 5.3.3.7 while 语句 99 5.3.3.8 do 语句 99 5.3.3.9 for 语句 99 5.3.3.10 break、continue 和 goto 语句 100 5.3.3.11 ...

    精通sql结构化查询语句

    12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程中常用的流控制语句 13.2.1 IF....

    华为编程开发规范与案例

    软件编程规范培训实例与练习 软件编程规范培训实例与练习  问题分类 1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能...

    C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导

    4.2.1 用if语句处理选择结构举例 4.2.2 if语句的一般形式 4.3 关系运算符和关系表达式 4.3.1 关系运算符及其优先次序 4.3.2 关系表达式 4.4 逻辑运算符和逻辑表达式 4.4.1 逻辑运算符及其优先次序 4.4.2 逻辑表达式 ...

    明解C语言(第3版)入门篇.[日]柴田望洋(带详细书签).pdf 【半高清】

    switch语句和if语句 73 选择语句 74 总结 75 第4章 程序的循环控制 77 4-1 do语句 78 do语句 78 复合语句(程序块)中的声明 79 读取一定范围内的值 80 逻辑非运算符·德摩根定律 81 德摩根定律 81 求多个...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     1.4.4 if语句 15  1.5 类简介 17  1.5.1 Sales_item类 17  1.5.2 初识成员函数 20  1.6 书店程序 21  小结 23  术语表 23  第Ⅰ部分 C++基础 27  第2章 变量和基本类型 29  2.1 基本内置类型 30  2.1.1 ...

Global site tag (gtag.js) - Google Analytics