0

我有 3 个随机数(在这种特定情况下,介于 1 和 7 之间,但这并不重要)。我想通过使用检查我是否得到“三种类型”

if (x==y==z) {
code
}

x==y问题是何时z==1 x==y==z返回 true。如何检查 x、y 和 z 是否实际得到相同的值?

示例:5==5==1会返回true,具体如何检查5==5==5?(不包括5==5==1

4

2 回答 2

5

通过适当的比较:

x === y && y === z
// due to transitivity, if the above expression is true, x === z must be true as well

x==y==z实际上被评估为

(x == y) == z

即你要么在比较,true == z要么false == z我认为这不是你想要的。此外,它还进行类型转换。举个极端的例子:

[1,2,4] == 42 == "\n" // true

问题是当x==yz==1,x==y==z将返回 true。

是的,因为x == ytrue,所以你比较true == 1true将转换为数字11 == 1true

于 2014-09-16T22:34:51.500 回答
1

您应该检查单独的&&操作

if(x == y && x == z){
   //all are equal
}
于 2014-09-16T22:35:40.867 回答