与“零值”作比较的 if 语句。
笔试时候遇到的问题,在此做一下记录。
1.if语句中的布尔变量与零值作比较
不能用布尔变量与true,false,1,0直接作比较。布尔变量类型的语义是:零值为“假”,任何非零值都表示“真”。因为true的值并没有唯一的标准,因此不能用布尔变量与它直接进行比较。
假设布尔变量为flag,那么它与零值进行比较时if语句应该是
if(flag)\\表示如果flag为真
if(!flag)\\表示如果flag为假
不能用以下的这些方法
if(flag==1)
if(flag==true)
if(flag==false)
if(flag!=0)
2.if语句中 int 变量与零值作比较
整型变量中应该用“==”“!=”直接与零作比较,例如:
if(value==0)
if(value!=0)
不应该用
if(value)
if(!value)
这样容易被误解为value是布尔变量。
3.if语句中浮点变量与零值作比较
不能将浮点变量用“==” “!=”与任何数字作比较。
float和double类型的变量都有精度限制。应该用“>=”“<=”的形式进行比较。
应为
if((x>=-MIN) && (x<=MIN))
MIN可以是0.00000001。
不能直接
if(x==0.00)
4.if语句中指针变量与零值作比较
指针变量的零值是“空”,因此应该与“NULL”作比较。虽然“NULL”代表0,但是有不同的意义。
if语句如下:
if(p==NULL)
不同的形式代表不同的含义,因此要正确的表达想要表达的意思,应该用正确的方式写代码。
参考:https://blog.csdn.net/xyzbaihaiping/article/details/51124943
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)