我在一本书中读过这本书,只是想知道它是如何运作的,如果你会做那样的事情,你会做什么原因。我知道您可以返回(x>y)
,但为什么会false == (x > y)
?
答案 0 :(得分:9)
这只是一种更冗长的写作方式
x <= y
评估x > y
的结果并与false
进行比较。由于x > y
的结果是布尔值,因此与写入
!(x > y) // an == true is implied here if you don't add it yourself
当然与写作相同
x <= y
答案 1 :(得分:1)
if(x <= y)
if(!(x > y))
if((x>y) == false)
他们都评估到相同的条件。这只是不同的写作方式。我通常更喜欢使用更易读的。
答案 2 :(得分:1)
假设我们有三个变量,并且都取二进制值。我们可以用它来实现一些结果。就像这个。
例如:if(a ==(b&gt; c))代表第一种情况。
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
答案 3 :(得分:1)
将不可变值放在==左边的变量和右边的变量是一个非常常见的构造。 这是为了防止您意外错过其中一个等号。这样编译器会突出显示您的错误。
例如,您是否意外输入
if(a = true){...}
这将始终执行大括号内的代码,因为它将a的值设置为true。
但是如果你不小心打字
if(true = a){...}
编译器应该提醒您,因为您无法更改true
的值虽然在这个特定的例子中有更好的方法来编写表达式而不需要双等号(参见之前的所有答案)