可能重复:
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],因为我觉得它更具可读性。 你们觉得怎么样?。
答案 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){”不给出 编译错误。因此,通过避免 “==”对于布尔人,你要避免设置
你自己找到了大量的虫子 因错别字而导致。