以下程序的输出是“不相等”,但是我希望“他们是平等的”三个变量相比(x,y,和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) 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并且无论我重复多少次(据我所知),该语句始终为真。