不同資料型別與零值比較的if從句

Brave-girl發表於2016-01-09

分別給出bool,int,float,指標變數 與“零值”比較的 if 語句(假設變數名為var)
【解答】   
bool型變數:if(!var) 或if(var)
int型變數: if(var==0)  
float型變數:
const float EPSINON = 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分。  
在計算機領域,單等號“=”表示的是賦值操作,而雙等號“==”表示的是比較操作。

相關文章