2017-01-16 280 views

回答

2

从逻辑上讲,根据您正在比较的值的类型和您使用的语言,可能会有差异。例如:

x == false意味着x != true,但x != true并不总是意味着x == false因为X也可以是一些废话值。

1 + 1 = 3== false!= true。因为它是废话,所以它既不是== false也不是!= true

x = null!= true但不是== false

+0

我认为你的'7>猫'的例子很奇怪。它看起来和表达式'cat == false'或'cat!= true'一样奇怪,它们都不会以我知道的任何语言编译或执行。讨论不是有效程序的东西的语义对我来说似乎很陌生。 – aioobe

+1

@aioobe我会同意的大部分,但我可以看到这发生在弱类型的语言。这就是为什么我在我的回答中指定“取决于您比较的价值类型”。 –

+0

另一个例子可能是一个语言(或形式结构),其中布尔类型允许空值。在这种情况下,null可能既不是真也不是假,因此!true可能不是假。 – MattClarke

相关问题