if 里面逻辑判断,true OR false,每一步计算的结果都是0或1
运算流程 :先计算 a<x 的结果Res1(布尔值 【0或1】),再计算Res1<b的结果Res2(布尔值 【0或1】)。举个简单的例子
for(int i = 0; i < 10; i++)
{
if(2 < i < 5)
{
cout << i << endl;
}
}
//打印的结果为 ,全部 i
0 1 2 3 4 5 6 7 8 9
①先计算 2< i 当i <2时,2<i 的结果就是false,即 0
②再计算 0<5 ,结果就是true ,即1
所以 当 i<2 时, 2< i<5的结果成立。同理 i>5时,2 <i 的值为0,0<5的值为1,表达式依旧成立。
解决方法: 运算符&&
if((x > a) && (x < b))
注意: 别跟python搞混,python中大于号小于号可以连用