日期:2014-05-20  浏览次数:20766 次

if(true == b) 与if(b == true)有什么区别
if(true == b) 与if(b == true)有什么区别[size=13px][/size]

我是一个Java的初学者, 完全靠自己自学,今天在看视频是听老师说专业的程序员都用 if(true == b)


------解决方案--------------------
我觉得一样。。
有人说if(null==entity)比 if(entity==null)更安全
但是也没见过有报过错。
------解决方案--------------------
一样的只是为了防止出错
true == b 如果你少写了一个=则会报错 而b == true则不会
------解决方案--------------------
自己动手,丰衣足食
如果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 其他情况,编译失败

总结,用“if (true == b)”的恐怕都是那个误人子弟、毁人不倦的老师教出来的

p.s.: if (b == true),大概15年前,我还在读高中时,这种写法就被我老师纠正过,当时学的是FoxBase Basic
------解决方案--------------------
>>3 java.lang.Boolean,且b = null的情况下,if(true == b) 与if(b == true)都是NullPointerException
这个不可能空指针异常的,又没有用equal
------解决方案--------------------
探讨

自己动手,丰衣足食
如果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 其他情况,编译……

------解决方案--------------------
就是一种编程习惯,为了防止空指针异常的
------解决方案--------------------
那些说能防空异常的!

Java code

        Boolean a = null;
        if(true == a)  //这里你写成if(a == true) 或者写成if(a) 都会出空异常!
          System.out.println("aaa");

                boolean a = null; //这种写法是语法错误!

------解决方案--------------------
大家说的都对。
大部分支持该写法:a.if(“abc”==a),有益于调试程序
b.if(a)--a是Boolean类型
正好我也学习了。
------解决方案--------------------
因为
b == true 如果你有时候少打一个=的话,就是 if(b=true),这种情况

true == b 如果你也少打一个=的话,就会报错了,所以专业的程序员应该是用true==b

详见《代码大全》
------解决方案--------------------
判断的时候如果可以接受0和非0那么把常量写前面是有意义的。

java中if判断的结果只能是true和false,不接受数字,所以没区别。

但你的b本身就是bool类型的,不小心写成b=true的话if就一定会执行了。这种情况一般写if(b)。