BOOL(布爾)型變量:if(!var)
int型變量: if(var==0)
float型變量:
const float EPSINON = 0.00001; //在計算機之中,它只認識0和1,自然數2都不認識,所以計算機是比較2的,而當數字小到一定的程度計算機也不認識如:它的極限就是1.2*10負38次方,而一般的情況下我們就把小于0.00001絕對值得數認為是0.
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分。
|