最佳实践:if(foo == false)或if(!foo)

时间:2010-08-30 05:20:33

标签: java coding-style

  

可能重复:
  What is the preferred way to write boolean expressions in Java

今天,我和我的同事讨论了一个问题。 这是在Java代码中使用布尔变量以及if语句的更好方法。

boolean foo=true
//1. 

if(foo == false)
    // do something
else
    // do something else

//2.

if(!foo)
    // do something
else
    // do something else

我支持[1],因为我觉得它更具可读性。 你们觉得怎么样?。

7 个答案:

答案 0 :(得分:12)

2号,以及具有描述性名称的“foo”,以便代码读得很好:

if (!hasPurple) ...

答案 1 :(得分:6)

我发现#2更具可读性。我想每个Java开发人员(我都是C#dev)会知道什么!手段。我

虽然这可能不是重点,但我更愿意把我的“真实”块作为声明。如果条件通常是假的,那么我将我的变量命名为

if (notFoo) 
  // do something when
else
  // do something else

答案 2 :(得分:4)

我觉得避免像

这样的事情是个好主意
if (foo == true){}

因为偶尔你可以写

if (foo = true){}

作为印刷错误。很多时候发现它是一个容易犯的错误,但它似乎很适合做出那么快的错误。

答案 3 :(得分:0)

我选择2,因为作为程序员,即使2也是可读的。

想象一下,你有数百个这样的验证检查,你总是用false检查。

答案 4 :(得分:0)

如果您是唯一一位维护您的代码的人,那么您可以自由使用您喜欢的任何风格。

话虽如此!foo受到我认识的大多数开发人员的青睐。

答案 5 :(得分:0)

这是一个意见问题。我更喜欢数字2,因为它编写的代码较少,我认为它只是可读的。

答案 6 :(得分:0)

在语句中使用布尔变量作为条件时,请不要将其与true进行比较。

不是错误,但风格不好,因为它已经是一个布尔值,所以只需使用它。

  

“!foo”更好的原因   比“foo == false”。参考from

     
      
  • 简洁:假设您处于布尔值为
    的上下文中   必需的,而“x”是一个布尔值,它是   写“x”而不是“x
    ”的字符越少   == true“,或”!x“而不是”x == false“。

  •   
  • 惯例:经验丰富的Java程序员(或C,C ++,C#和其他大多数人)   语言)期望看到“x”而不是   比“x == true”和“!x”而不是   比“x == false”。

  •   
  • 健壮性:在Java中,条件语句和循环语句都需要使用   中的布尔值表达式   条件。如果“y”不是布尔值,则   然后是“if(y = foo)”形式的拼写错误   {“将在编译中出现编译错误   Java的。但如果“y”是布尔值则为   “if(y = foo){”不给出   编译错误。因此,通过避免   “==”对于布尔人,你要避免设置
      你自己找到了大量的虫子   因错别字而导致。

  •