2

greater-than (>)1 回の評価で複数の とを使用して、変数が範囲内にあるかどうかを確認しようとしていましたless-than (<)。しかし、これが機能するかどうかはわかりませんでした。複数の == を使用するのは違法のようですが、 < と > は大丈夫ですか?

これが私がやろうとしていることの例です:

if (bottomOfRange < variable < topOfRange) {
//Do stuff
}

私はこれを知っています:

if (bottomOfRange < varialbe && variable < topOfRange) {
//Do stuff
}

動作しますが、さらに効率的な比較方法を探しています。

これは私が望むように評価されますか、それとも別の方法で動作しますか?

4

2 に答える 2

8

いいえ。変数の型によっては、このコードはおそらくコンパイルされますが、必要な比較は行われません。そうなる:

  • bottomOfRange < variableブール値の結果を与えるために評価します。
  • その結果を値 0 または 1 の数値型に昇格します。
  • その値を と比較しますtopOfRange

値を他の 2 つの値と比較する場合は、2 つの比較を書き出す必要があります。

if (bottomOfRange < variable && variable < topOfRange)
于 2013-09-02T16:22:42.070 に答える