初学者阶段编程时,编写基本语句可能会有隐含错误的方式,基本语句主要针对if、for、while、goto、switch等,它们看似简单,但使用时隐患比较多,本文归纳了使用语句的一些规则和建议。基本语句编程举例
if语句是C /
C语言中最简单、最常用的语句,然而很多
编程人员用隐含错误的方式写if语句,本文以“与零值比较”为例,进行讨论。(1)布尔变量与零值比较:不可将布尔变量直接与TRUE、FALSE或者1、0比较。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准,例如VC 将TRUE定义为1,而VB则将TRUE定义为-1。假设布尔变量名为flag,它与零值比较的标准if语句如下
if(flag)//表示flag为真
if(!flag) //表示flag为假
其他的用法都属于不良风格,例如:
if(flag == TRUE)
if(flag == FALSE)
if(flag == 1 )
if(flag == 0 )
(2)整型变量与零值比较:应当将整型变量用“==”或“!=”直接与0比较。假设整型变量的名字为value,它与零值比较的标准if语句如下:
if(value == 0)
if(value != 0)
不可以模仿布尔变量的风格而写成:
if(value)
if(!value) //会让人误解value是布尔变量
(3)浮点变量与零值比较:不可以将浮点变量用“==”或“!=”与任何数字比较。千万留意,无论是float还是double类型的变量,都有精度限制,所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。假设浮点变量的名字为x,应该将
if(x == 0.0) //隐含错误的比较
转化为
if((x >= -EPSINON)
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。