与“零值”做比较的 if 语句。

笔试时候遇到的问题,在此作一下记录。spa

1.if语句中的布尔变量与零值做比较

    不能用布尔变量与true,false,1,0直接做比较。布尔变量类型的语义是:零值为“假”,任何非零值都表示“真”。由于true的值并无惟一的标准,所以不能用布尔变量与它直接进行比较。

    假设布尔变量为flag,那么它与零值进行比较时if语句应该是 
    if(flag)\\表示若是flag为真
    if(!flag)\\表示若是flag为假
不能用如下的这些方法
    if(flag==1)
    if(flag==true)
    if(flag==false)
    if(flag!=0) .net

 

2.if语句中 int 变量与零值做比较指针

    整型变量中应该用“==”“!=”直接与零做比较,例如:blog

   if(value==0)ip

   if(value!=0)变量

不该该用float

   if(value)方法

   if(!value)im

 这样容易被误解为value是布尔变量。笔试

 

3.if语句中浮点变量与零值做比较
不能将浮点变量用“==”    “!=”与任何数字做比较。
float和double类型的变量都有精度限制。应该用“>=”“<=”的形式进行比较。
应为
   if((x>=-MIN) && (x<=MIN))
  MIN能够是0.00000001。
不能直接
  if(x==0.00)


4.if语句中指针变量与零值做比较
  指针变量的零值是“空”,所以应该与“NULL”做比较。虽然“NULL”表明0,可是有不一样的意义。
if语句以下:
  if(p==NULL)
 
不一样的形式表明不一样的含义,所以要正确的表达想要表达的意思,应该用正确的方式写代码。

 

参考:https://blog.csdn.net/xyzbaihaiping/article/details/51124943

相关文章
相关标签/搜索