相关疑难解决方法(0)

为什么将三个变量与==进行比较会得出false?

以下程序的输出是“不相等”,但是我希望“他们是平等的”三个变量相比(xy,和z)相等。为什么?

#include <iostream>

int main()
{
    int y, x, z;
    y = 3;
    x = 3;
    z = 3;

    if (x == y == z)
    {
        std::cout << "they are equal\n";
    }
    else
    {
        std::cout << "they are not equal\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
96
查看次数

为什么是'if(1 == 1 == 1 == 1 == 1);' TRUE 但'if(-1 == -1 == -1 == -1 == -1);' 错误的?

if (1 == 1 == 1 == 1 == 1)
    std::cout << "right";
Run Code Online (Sandbox Code Playgroud)

上面的代码显示“正确”。

if (-1 == -1)
    std::cout << "right";
Run Code Online (Sandbox Code Playgroud)

上面的代码也显示“正确”。

if (-1 == -1 == -1)
    std::cout << "right";
Run Code Online (Sandbox Code Playgroud)

上面的代码什么也没显示。(这是因为if statement我猜这不是真的?)

我想知道为什么会发生这种奇怪的事情。

因为-1等于-1并且无论我重复多少次(据我所知),该语句始终为真。

c++ if-statement short-circuiting

2
推荐指数
1
解决办法
195
查看次数

标签 统计

c++ ×2

if-statement ×1

short-circuiting ×1