C/C+中的等式+; 在C++中,通常确定一个值x是否在两个极限之间的方法是: //This is (A) double x = 0.0d; double lower = -1.0d; double upper = +1.0d; if(x > lower && x < upper){ // Do some stuff } //这是(A) 双x=0.0d; 双下=-1.0d; 双上=+1.0d; 如果(x>下&&x
但今天我偶然发现我可以做到这一点:C/C+中的等式+; 在C++中,通常确定一个值x是否在两个极限之间的方法是: //This is (A) double x = 0.0d; double lower = -1.0d; double upper = +1.0d; if(x > lower && x < upper){ // Do some stuff } //这是(A) 双x=0.0d; 双下=-1.0d; 双上=+1.0d; 如果(x>下&&x,c++,c,equality,C++,C,Equality,但今天我偶然发现我可以做到这一点: // This is (B) double x = 0.0d; double lower = -1.0d; double upper = +1.0d; if(lower < x < upper){ // Do some stuff } //这是(B) 双x=0.0d; 双下=-1.0d; 双上=+1.0d; if(下部
// This is (B)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;
if(lower < x < upper){
// Do some stuff
}
//这是(B)
双x=0.0d;
双下=-1.0d;
双上=+1.0d;
if(下部
它似乎工作得很好,但我以前从未听说过使用“lower(lower
,即lower
的值(即false
或true
,但转换为int
进行比较)与upper
进行比较
有关更多信息,请参阅。它们绝对不是等效的。您的表达式
lower
将首先计算lower
为真或假,然后分别计算true
或false
。好的,是的。在这两种情况下,x
在值范围之间。
例如:
下限=4;
上限=9;
x=7
如果您这样做:7>4&&7<9
与说4<7<9
相同。
顺便说一句,这是基本的算术。它不好用。事实上,这是大错特错的,只是偶然发生的
lower
被解析为(lower
(下
的类型为bool
,其值为true
或false
,具体取决于x
的值。将代码< Boo> <代码>值与4<7
是真的,true<9
也是true
。但是7<4<9
也是true
。不,这是错误的。基本C++,但C++(代码)>代码/代码> <代码>不是“Athnistic”:他们很肯定它评估<代码>下标1
或0
@egrunin”操作符<(小于),>(大于),=(大于或等于)都会产生false
或true
”@K-ballo:看看unwind
的答案中的正确措辞。啊!谢谢你,我想可能是这样的!