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

解决方案 »

  1.   

    我觉得一样。。
    有人说if(null==entity)比 if(entity==null)更安全
    但是也没见过有报过错。
      

  2.   

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

  3.   

    看看这个精华帖:
    http://topic.csdn.net/u/20090608/09/576b3c86-c004-4fa7-b96d-6d9245160cec.html?23373
      

  4.   

    如果b是boolean型的话,应该这样判断吧:if(b)
      

  5.   

    自己动手,丰衣足食
    如果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
      

  6.   

    >>3 java.lang.Boolean,且b = null的情况下,if(true == b) 与if(b == true)都是NullPointerException
    这个不可能空指针异常的,又没有用equal
      

  7.   


    我的青春小鸟一去不回来。帕斯卡 FOXPOR FOXBASE ......
      

  8.   

    那些说能防空异常的!
    Boolean a = null;
    if(true == a)  //这里你写成if(a == true) 或者写成if(a) 都会出空异常!
      System.out.println("aaa");                boolean a = null; //这种写法是语法错误!
    还有啥好说的啊
      

  9.   

    月经贴
    Boolean a = null;    编译错误…  
      

  10.   

    大家说的都对。
    大部分支持该写法:a.if(“abc”==a),有益于调试程序
                      b.if(a)--a是Boolean类型
    正好我也学习了。
      

  11.   

    表达不清啊,我是说三种写法都空异常了。Boolean a = null;编译错误? 那我这怎么通过编译了。
      

  12.   

    其实是一样的  其实也就是种习惯了哎  我以前的老师每次都让我们写成 true==b  因为一旦你不小心少些了个等于 那么编译器就报错了  反之 b=true 在之前定义了boolean b 之后 编译器就不报错了哎  还是小心为上
      

  13.   

    因为
    b == true 如果你有时候少打一个=的话,就是 if(b=true),这种情况

    true == b 如果你也少打一个=的话,就会报错了,所以专业的程序员应该是用true==b详见《代码大全》
      

  14.   

    判断的时候如果可以接受0和非0那么把常量写前面是有意义的。java中if判断的结果只能是true和false,不接受数字,所以没区别。但你的b本身就是bool类型的,不小心写成b=true的话if就一定会执行了。这种情况一般写if(b)。
      

  15.   

    其实,LZ 可以看看 高质量C++编程 就会懂了!
      

  16.   

    我感觉这个没有区别的,习惯性吧。因为我们习惯把null!=xxx,把null写前面防止报错。但是true写前面,没有这样的作用啊
      

  17.   

    其实是没啥区别...........有些时候用,是有技巧的.比较判断一个变量是否和字符串相等"abc".equals(变量)要比变量.equals("abc")安全.
      

  18.   

    这个纯粹是瞎说。对象有属性或方法访问的行为时才有类似的说法,例如:
    "abc".equals(s)

    s.equals("abc")
    安全些。==运算没有属性访问的行为,不会出现空指针的情况。
      

  19.   

    在进行逻辑判断的时候,一般将常量放前面,这样你如果一不小心漏掉了一个'='号,会立马提示错误的。否则将会留下一个很隐秘的bug
      

  20.   

    那些说“如果不小心漏了一个=号,会留下很隐秘的Bug的”都回家自己试试去10L是正解还有关于 a.equals("b") 还是 "b".equals(a)我的习惯是前者,a的非空性应该由代码保证,而不是靠技巧撸过去!
      

  21.   

    引用 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)'));
      

  22.   

    一直都用if(b)
    代码从来没在这个方面出现漏洞。
      

  23.   

    蛋疼的帖。
    写成if(b)正解。
    写成if(b==true)明显才毕业。
    写成if(true == b)明显装x。
      

  24.   


    C++里面有用,java不存在这样的问题~
      

  25.   

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

  26.   

    防止由于疏忽造成的赋值语句,在C语言比较重要。java中好像有一个警告提示。
      

  27.   

    这类问题在Java语言没啥好讨论的. 所谓什么专家建议,都是很久很久以前基于C语言总结出来的.
    C语言 可以这样写 if(a=null) 编译器不会报错.但是java语言 写 if(a=null) 编译器一定会报错. 因此不会出现所谓的不小心少写一个等号出现业务错误机会