不同資料型別與零值比較的if從句
分別給出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分。
在計算機領域,單等號“=”表示的是賦值操作,而雙等號“==”表示的是比較操作。
相關文章
- BOOL,int,float,指標型別的變數a 與“零”的比較語句指標型別變數
- Julia不同資料型別函式的內部程式碼比較資料型別函式
- C# 物件比較(值型別、引用型別)C#物件型別
- 零值比較--BOOL,int,float,指標變數與零值比指標變數
- C與I型別的比較型別
- Oracle三種集合資料型別的比較Oracle資料型別
- Oracle的 資料型別比較及注意事項Oracle資料型別
- XML Schema和XML DTD的資料型別比較XML資料型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-不同的最值大小SQL資料型別
- 關於 PHP 不同資料型別在比較時該如何轉化問題PHP資料型別
- mysql資料庫中decimal資料型別比較大小MySql資料庫Decimal資料型別
- 從原始資料型別到值物件資料型別物件
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- ORACLE DATE和TIMESTAMP資料型別的比較(一) (轉)Oracle資料型別
- ORACLE DATE和TIMESTAMP資料型別的比較(二) (轉)Oracle資料型別
- php型別比較表PHP型別
- Java Integer型別比較Java型別
- 區別值型別資料和引用型別資料型別
- PHP基礎-資料型別-string和int比較PHP資料型別
- Oracle date 型別比較和String比較Oracle型別
- java double、float型別的比較Java型別
- ORACLE的count與空值比較Oracle
- 以MongoDB為例與關係型資料庫比較MongoDB資料庫
- 判斷值的資料型別資料型別
- mysql字元型別varchar()比較MySql字元型別
- yii2 從資料庫獲取內容值型別與資料庫欄位型別問題解決資料庫型別
- 值型別與引用型別的區別型別
- 如何比較兩個資料庫表結構的不同資料庫
- 比較兩個表的資料差別
- 關於Oracle字元型別的比較Oracle字元型別
- 值型別與引用型別型別
- EJBQL中關於日期型資料的比較
- 不同DBMS的SQL比較SQL
- C#的型別——值型別與引用型別C#型別
- 如何使用Java泛型對映不同的值型別Java泛型型別
- 基本資料型別和引用型別的初始值資料型別
- 【MySQL資料型別1之--數值型別】MySql資料型別
- Java不同資料結構記憶體消耗比較Java資料結構記憶體