與「零值」做比較的 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

相關文章
相關標籤/搜索