【发布时间】:2020-06-26 18:21:54
【问题描述】:
if (1 == 1 == 1 == 1 == 1)
std::cout << "right";
上面的代码显示“正确”。
if (-1 == -1)
std::cout << "right";
上面的代码也显示“正确”。
if (-1 == -1 == -1)
std::cout << "right";
上面的代码什么也没显示。 (我猜这是因为if statement 不正确?)
我想知道为什么会发生这种奇怪的事情。
因为-1 等于-1,而且无论我重复多少次(据我所知),这句话总是正确的。
【问题讨论】:
-
想想
true == negative-one的评估结果是什么 -
@M.M,同样的问题,但你只是不要从 -1 开始。无论如何,
-1 == -1是true。true是1。1 == -1是false -
请记住,在 C++ 中,您编写的不是数学方程式,而是一系列逐一计算的语句。
-
@M.M aha,现在我明白了。谢谢!
-
我刚刚对所有的 cmets 投了赞成票!谢谢大家!
标签: c++ if-statement short-circuiting