条件判断语句比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条件判断语句比较相关的知识,希望对你有一定的参考价值。
条件判断语句比较
流程控制进行条件语句判断的时候,经常用到各种数据类型的变量与零值比较的问题,这里进行一个总结加深对数据类型的认识,不规范的与零比较语句容易让人对参与比较的数据类型产生误解。
§1. 布尔变量与零值比较
C++有bool类型,C99标准才有布尔类型_Bool,用整型代替布尔类型,非0表示真,0表示假,如果你的编译器不支持布尔类型,可以自定义类型enum_BOOL{FALSE = 0,TRUE = !FALSE}。
不可将布尔变量直接与TRUE、FALSE或者1、0进行比较,假设布尔类型的名字为flag,
它与零值比较的标准if语句如下:
If ( flag ) //表示flag为真
If ( !flag ) //表示flag为假
§2. 整型变量与零值的比较
整型变量应当应用“==”或者是“!=”直接与零比较。假设整型变量的名字为value,
它与零值的比较标准if语句如下:
If ( value == 0)
If ( value != 0)
§3.浮点变量与零值比较
无论是float还是double类型的变量,都有精度限制,所以一定要避免将浮点变量用
“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”的形式。因为float会有误差。
比如你赋了float a=0, a有可能是0.000000001,存在误差,所以使用if(x == 0)来判断,经常不会成立。FLOAT_ACCURACY是允许的误差即精度,浮点变量a与零值比较的标准语句为:
Const float FLOAT_ACCURACY = 0.00001;
If ( ( a >= -FLOAT_ACCURACY) && (a <= FLOAT_ACCURACY) )
§4.指针变量与零值比较
指针变量的零值是空(即为NULL),尽管NULL的值与0相同,但两者意义不同。假设指针变量的名字为p,它与零值比较的标准语句如下:
If (p == NULL) //p与NULL显式比较,强调p是指针变量
If (p != NULL)
If (NULL == p)这种写法是程序员为了防止将if (p == NULL)误写成if (p = NULL)而有意颠倒,所以这样的写法是有一定好处的。
以上是关于条件判断语句比较的主要内容,如果未能解决你的问题,请参考以下文章