C++ C++;代码打印奇怪的值

C++ C++;代码打印奇怪的值,c++,C++,我有一个非常愚蠢但奇怪的问题。当我试图编译并运行以下代码时,我的编译器正在打印“ggl”,但我认为它不应该打印。奇怪的是,在做了这么多编程之后,我被困在了这里。到底是什么问题?有人能帮我吗?提前谢谢 #include <iostream> using namespace std; int main() { int t=8; if(1<t<5){ cout<<"ggl"; } //cout<<aa;

我有一个非常愚蠢但奇怪的问题。当我试图编译并运行以下代码时,我的编译器正在打印“ggl”,但我认为它不应该打印。奇怪的是,在做了这么多编程之后,我被困在了这里。到底是什么问题?有人能帮我吗?提前谢谢

#include <iostream>
using namespace std;

int main() {
    int t=8;
    if(1<t<5){
        cout<<"ggl";
    }
    //cout<<aa;
    return 0;
}
#包括
使用名称空间std;
int main(){
int t=8;

如果(1这条线没有做你认为它做的事情

 if(1<t<5)
if(1


它实际做的是取值
(1你的
if
条件有效地表示
if((1
,这总是正确的,因为
(1
要么是1要么是0(
1<8
计算为1)

由于链式比较不(通常)在C++中工作,所以需要检查条件不同:

if (1 < t && t < 5) {
    cout << "ggl";
}
if(1我们不能在同一时间输入相同的内容。无论如何,我将+1您的。感谢赛博的快速响应!!这是吗(1@varunkr一般来说,大多数语言都有您刚才看到的行为,原因如下所述。我想到的一个例外是
Python
,它允许您最初编写的语法。
if ((1 < t) < 5)
if (true < 5)
if (1 < 5)
if(1<t<5)
if ((1<t) && (t<5))
if (1 < t && t < 5) {
    cout << "ggl";
}