a==true和true==a

本文探讨了Java中if语句的两种写法if(a==true)与if(true==a)的区别及优劣。介绍了为何推荐使用true==a的形式来避免常见的编程错误,并解释了在不同情况下这两种写法的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.if(true==a)是两个变量之间的比较,if(a==true)是变量a是否为真的判断!
true是关键字,不是变量,不存在"两个变量"!

 

2.根据java代码的编写规则 是不允许写if(a==true)这样的代码的。 正确:if(a) or if(!a).
编码规范都推荐的if(a)或者if(!a)的方式,无论是sun还是IBM 。

 

3.以我在项目中经验,这两个区别我们在项目中推荐使用true==a,是为了防止有人漏写一个=号,做这种判断时定值放在前面少写=号会报编译错,而反过来写就不会,导致结果出错后还不容易调试出来。
猫老大要是看到某猫在公司里这么写Java代码,就离裁员不远了喵.

 

4.效果上没区别 只是  a==true, 常会被误写成  a=true  (赋值表达式),从而导致bug,并且不容易看出来 所以一般写程序的时候,是把常量写在前面的, 即  true==a 。
如果错写成true=a(赋值表达式)的话,是编译不过的 只是利用编译器,避免一些低级bug而已
写为if(a)就不会漏写=了---压根不去写它,当然不会写漏喵.如果是其他类型比较,比如a是一个int,错写为if(a=1)会因为值不为布尔类型而无法通过编译.


    if(true==a)有时候这种判断之所以把变量放后面是为了防止空指针异常,因为如果a为null的话把a放前面就会报空指针异常,而放后面不会。假如a为Boolean类型并且值为null,那么就算竖着写也避免不了NullPointerException,必须写为if( a!=null && a ),所以Boolean包装类极为少见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值