if(true == b) 与if(b == true)有什么区别

梦里香格里拉 2011-10-10 10:14:34
if(true == b) 与if(b == true)有什么区别

我是一个Java的初学者, 完全靠自己自学,今天在看视频是听老师说专业的程序员都用 if(true == b)
...全文
664 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
maliang18 2011-10-20
  • 打赏
  • 举报
回复
顶10楼!
lzc_hacker 2011-10-20
  • 打赏
  • 举报
回复
这类问题在Java语言没啥好讨论的. 所谓什么专家建议,都是很久很久以前基于C语言总结出来的.
C语言 可以这样写 if(a=null) 编译器不会报错.

但是java语言 写 if(a=null) 编译器一定会报错. 因此不会出现所谓的不小心少写一个等号出现业务错误机会
fainfy 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 shine333 的回复:]

自己动手,丰衣足食
如果b的类型是

1 原声类型boolean,专业的程序员都用if (b)
2 java.lang.Boolean,且b != null的情况下,专业的程序员还是用if (b)
3 java.lang.Boolean,且b = null的情况下,if(true == b) 与if(b == true)都是NullPointerException
4 其他情况,编译……
[/Quote]


引用 106 楼 sunyiz 的回复:


刚才突然发现可以自己设置 Eclipse 里 Java 的编译级别
if(boolean=false) 这种代码的默认级别为:Ignore
完全可以自己设置成 Warning 或者 Error

纠结于 if(boolean==false) 会写错成 if(boolean=false) 的人
完全可以在 IDE 里设置一下,一劳永逸


Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Potential programming problems 下面 Possible accidental boolean assignment(e.g. 'if(a=b)'));
lishangliandie 2011-10-12
  • 打赏
  • 举报
回复
我觉得是:代码的规范性问题而已
BadPattern 2011-10-12
  • 打赏
  • 举报
回复
蛋疼的帖。
写成if(b)正解。
写成if(b==true)明显才毕业。
写成if(true == b)明显装x。
虎翼 2011-10-12
  • 打赏
  • 举报
回复
10楼的讲的很好
a107494639 2011-10-12
  • 打赏
  • 举报
回复
一直都用if(b)
代码从来没在这个方面出现漏洞。
xiamin 2011-10-12
  • 打赏
  • 举报
回复
一样没有区别的
索隆 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qqlwq123 的回复:]
有毛区别啊,防止你写错代码,变成赋值而已。
[/Quote]
同意此看法,这种问题感觉是没事找事
flyinf_guo 2011-10-12
  • 打赏
  • 举报
回复
防止由于疏忽造成的赋值语句,在C语言比较重要。java中好像有一个警告提示。
owaspcodding 2011-10-12
  • 打赏
  • 举报
回复
没遇到过!
fendoudxiaohouzi 2011-10-12
  • 打赏
  • 举报
回复
来晚了,话都没得说的了。。。
原来缘来 2011-10-12
  • 打赏
  • 举报
回复
都挺麻烦的,if(b)就可以了
zzxwn1 2011-10-12
  • 打赏
  • 举报
回复
总结,用“if (true == b)”的恐怕都是那个误人子弟、毁人不倦的老师教出来的

ETCentury 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 shine333 的回复:]
自己动手,丰衣足食
如果b的类型是

1 原声类型boolean,专业的程序员都用if (b)
2 java.lang.Boolean,且b != null的情况下,专业的程序员还是用if (b)
3 java.lang.Boolean,且b = null的情况下,if(true == b) 与if(b == true)都是NullPointerException
4 其他情况,编译失……
[/Quote]


不至于吧,兄弟
mig3719 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mengxiangyue 的回复:]

一样的只是为了防止出错
true == b 如果你少写了一个=则会报错 而b == true则不会
[/Quote]

C++里面有用,java不存在这样的问题~
  • 打赏
  • 举报
回复
这都是细枝末节的东西
nanjiwubingqq 2011-10-12
  • 打赏
  • 举报
回复
10楼太经典了,大学很多教师都是半瓢水
xflr123 2011-10-12
  • 打赏
  • 举报
回复
回答的人不少呢
zhuJustice 2011-10-11
  • 打赏
  • 举报
回复
10楼的讲的很好
加载更多回复(45)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧