试题 :分别给出 BOOL,int,float,指针变量 与“零值”
比较的 if 语句(假设变量名为 var)
解答:
BOOL 型变量: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 分。
比较的 if 语句(假设变量名为 var)
解答:
BOOL 型变量: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 分。