在 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
}
但是今天我偶然发现我可以这样做:
// This is (B)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;
if(lower < x < upper){
// Do some stuff
}
它似乎工作正常,但我以前从未听说过使用“lower < x < upper”完成此操作。这会产生您期望的可执行代码吗?IE,(A)是否等同于(B)?
我想很多人不会知道这一点,我怀疑这可能是因为编译器对 (A) 的解释与 (B) 不同。这对吗?