short类型数据比较出错,结果不一

使用VS2022版本:

用两个short类型变量进行逻辑比较,前4个if都能通过,第五个if语句条件错误不执行if内部内容

short x, y;
x = 1;
y = 2;

if(y<3) {
    cout << 4 << endl;
}
if ( y >1.5) {
    cout << 3 << endl;
}
if (y > 1.5 && y < 3) {
    cout << 6 << endl;
}
if (1.5 > x > 0) {
    cout << 2 << endl;
}
if (3>y > 1.5) {
    cout << 5 << endl;
}

}

我感觉如果第五个if无法通过第四个if也应该通过不了,但第四个if能通过,第5个通过不了

这两种结果并不是我们所期待的3>y > 1.5,而是先比较前两个结果,然后返回比较结果真或者假,对应的值就是1或者0,再拿返回的结果跟第三个比较
3>y结果是不成立返回0 然后0>1.5不成立就不走if了 改成 3>y &&y> 1.5这种

img

不能连续这样写,第四个和第五个不能这样写
第四个能执行是因为 1.5>x>0 这样就成了(1.5>x)>0 1>0(1.5>1的结果是true 是1)
第五个不成功同理 1>1.5不成功

if (y > 1.5 && y < 3)
你这不是会好好写吗,后面写的是什么玩意