Java中的表达式(!b)和(b == false)是否相同?

时间:2011-10-27 08:57:50

标签: java boolean logical-operators

鉴于b是一个布尔变量,表达式(!b)和(b == false)是一样的吗?

到目前为止,我还有这个问题:

  • !b - 如果b为真,则返回[FALSE响应]或如果是,则返回[TRUE响应 b是假的。

  • 在这种情况下,声明一个布尔变量'b'会将其设置为 是的,因此制作!b返回false。

我想我需要完成的问题是知道b是否最初是真的,我认为它是什么?

希望这有道理,有人可以为我解决这个问题吗?

编辑: 这是我的导师提出的问题。我被要求决定这个陈述是真是假: “表达式(!b)和(b == false)是等价的,其中b是布尔变量”

当我寻求帮助时,这里有极其有用的神秘线索:

使用!b的情况是这些表达式应该为b的所有值提供相同的结果,以使语句正确。即如果b为假,则两个表达式给出相同的结果,如果b为真,则两个表达式给出相同的结果。你需要看看这两个表达式。

2 个答案:

答案 0 :(得分:5)

是的,但使用!b而非b == false

的好风格要求

答案 1 :(得分:3)

是的,它们在“理智”语言中是等效的:-)(假设 Java ,C ++,C#)

如果b只能是truefalse,那么在Javascript中,这是正确的(但请注意!if (!null)为真,if (null == false)为假。同样适用于undefined

请注意,并非所有语言都使用! NOT==使用EQUALS。例如,在C中你可能会使用int代替boolFALSE而不是false,但结果会相同(但请注意,在C中,非零是“真”)