4

我在一本书中读到了这个,只是想知道它是如何工作的,你是否会做这样的事情,以及你会这样做的原因。我知道你可以回来(x>y),但你为什么要这样做false == (x > y)

4

4 回答 4

9

这只是一种更冗长的写作方式

x <= y

的结果x > y被评估并与 比较false。由于结果x > y是布尔值,因此与写入相同

!(x > y)  // an == true is implied here if you don't add it yourself

这当然和写作一样

x <= y
于 2013-03-08T09:25:24.760 回答
1
  • if(x <= y)
  • if(!(x > y))
  • if((x>y) == false)

它们都评估为相同的条件。只是写法不同而已。我通常更喜欢使用更易读的。

于 2013-03-08T09:27:56.973 回答
1

假设我们有三个变量并且都取二进制值。我们可以用它来实现一些结果。像这样。

ex : if(a==(b>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
于 2013-03-08T09:40:38.903 回答
1

将不可变的值放在 == 的左侧,将变量放在右侧是很常见的结构。这是为了以防您不小心错过了其中一个等号。这样编译器将突出显示您的错误。

例如,您是否不小心输入了

如果(a = true){...}

这将始终执行大括号内的代码,因为它将 a 的值设置为 true。

但是,如果您不小心输入

如果(真 = a){...}

编译器应该提醒您,因为您无法更改 true 的值

尽管在这个特定的例子中,有更好的方法来编写表达式,而不需要双等号(参见前面的所有答案)

于 2013-03-08T11:27:07.327 回答