您的位置:首页 > 其它

条件判断语句比较

2016-03-29 19:58 225 查看
条件判断语句比较流程控制进行条件语句判断的时候,经常用到各种数据类型的变量与零值比较的问题,这里进行一个总结加深对数据类型的认识,不规范的与零比较语句容易让人对参与比较的数据类型产生误解。
§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)而有意颠倒,所以这样的写法是有一定好处的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: