我在一本书中读到了这个,只是想知道它是如何工作的,你是否会做这样的事情,以及你会这样做的原因。我知道你可以回来(x>y)
,但你为什么要这样做false == (x > y)
?
问问题
118 次
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 回答