0

次のように、値 ir が 0 から -0.2 の間であるかどうかを確認しています。

float value = -0.1;
if (0 < value > -0.2f) { }

しかし、エラーが発生しますoperator '>' cannot be applied to operands of type 'bool' and 'float'。if 文で演算子を使用して別の方法でそれを行うこともでき&&ますが、知りたいのですが、なぜbool として検出されるのですか?

4

5 に答える 5

7

これを見てください:

0 < value > -0.2f

最初0 < valueに評価され、 value を返し、 float numberboolと比較しようとするため、許可されていないためエラーが返されます。bool-0.2f

値が小さいかどうか、および値がより大きいかどうかを確認したいので、これがあなたがしたいことです:

if (0 < value && value > -0.2f) { }
于 2013-05-13T15:25:43.040 に答える
1

これは、if ステートメントの構造によるものです。代わりにこれを試してください:

if (0 < value && value > -0.2f) { }

あなたが書いたものはこれと同等です:

if ((0 < value) > -0.2f) { }

0 < value比較が評価され、ブール値が返され、2 番目の比較のオペランドになります。>また、エラー メッセージにあるように、 を使用してブール値とフロートを比較することはできません。

于 2013-05-13T15:25:32.553 に答える