表达式(!b)和(b==false)在Java中等效吗?
假设b是一个布尔变量,那么表达式(!b)和(b==false)是否相同 到目前为止,我的问题是:表达式(!b)和(b==false)在Java中等效吗?,java,boolean,logical-operators,Java,Boolean,Logical Operators,假设b是一个布尔变量,那么表达式(!b)和(b==false)是否相同 到目前为止,我的问题是: !!b——如果b为真,则返回[FALSE response],如果为真,则返回[true response] b是假的 在本例中,声明一个布尔变量“b”会将其设置为 真的,因此制造!b返回false 我想我要完成这个问题所需要的就是知道b最初是否为真,我假设它是真的 希望这是有意义的,有人能帮我澄清一下吗 编辑: 这是我的导师提出的问题。我被要求决定这句话是真是假: 表达式(!b)和(b==fa
- !!b——如果b为真,则返回[FALSE response],如果为真,则返回[true response] b是假的
- 在本例中,声明一个布尔变量“b”会将其设置为 真的,因此制造!b返回false
情况如何!b是这些表达式应该为b的所有值提供相同的结果,以便语句正确。即如果b为false,则两个表达式给出相同的结果;如果b为true,则两个表达式给出相同的结果。你需要看看这两种表达方式 > P>是,在“理智”语言中它们是等价的:-(我们说<强> java >,C++,C**) 在Javascript中,if
b
只能是true
或false
,这是正确的(但要小心!如果(!null)
为true,如果(null==false)
为false。对于未定义的
,也一样)
请注意,并非所有语言都使用
对于不
的代码>和的=
等于
。例如,在C中,您可能会使用int
而不是bool
和FALSE
而不是FALSE
,但结果是相同的(但请注意,在C中,非零是“true”)是的,但是使用的风格很好!b
而不是b==false
取决于语言。它是哪种语言?人们发现它是Java。当我看到if(someBoolean==true)
时,我喜欢它。让我想杀人。谢谢你的回答。我要记住,我不想波希米亚人因为我的代码太差而谋杀我:)谢谢alot@Bohemian在C
中,如果(someInt),它甚至可能成为bug的潜在来源if(someInt==TRUE)
@xanatos这让我想起了我最喜欢的一个C表达式:!!b
(以无分支的方式清理“布尔”值)。@xanatos这个问题和我的评论是关于java的,但这是关于C的一个有趣的观点