0

私は 3 つの乱数を持っています (この特定のケースでは 1 から 7 の間ですが、実際には問題ではありません)。を使用して「スリーカード」を取得したかどうかを確認したい

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

問題は、いつx==yandz==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

問題は、 whenx==yz==1,x==y==zが true を返すことです。

はい、 にx == yなるのでtrue、 を比較しtrue == 1ます。trueは数値に変換され、1となり1 == 1ますtrue

于 2014-09-16T22:34:51.500 に答える
1

&&別の操作で確認する必要があります

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