我有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
)
答案 0 :(得分: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==y
和z==1
时,x==y==z
将返回true。
是的,因为x == y
将是true
,所以您要比较true == 1
。 true
将转换为1
,1 == 1
为true
。
答案 1 :(得分:1)
您应该检查单独的&&
操作
if(x == y && x == z){
//all are equal
}