• 2220阅读
  • 1回复

考查编程内功:与零值的比较 [复制链接]

上一主题 下一主题
离线那个谁
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-10-27
问题:分别给出BOOL, int, float, 指针变量与“零值”比较的if语句(假设变量名为var)。
解答:BOOL型变量:if(!var)
int型变量:if(var == 0)
float型变量:const float EPSINONS = 0.00001; if((x >= -EPSINON) && (x <= EPSINON))
指针变量:if(var == NULL)
剖析:考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。

一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变 量(short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL), 这是一种很好的编程习惯。

浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。如果写成if (x == 0.0),则判为错,得0分。
离线asd123

只看该作者 沙发  发表于: 10-26
新项目!(早推早赚钱)
时时彩招代理,永久9级提成!
下载APP注册送19元彩金!
提现秒到,靠谱平台!
qq943638892
注册链接]http://t.cn/R0LF8nD
有想法的注册私聊,我拉你进群[奸笑][奸笑]

<br/>牛仔企点辅助软件稳定群发十万好友
asd123
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个