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。
从左到右评估条件,因此以下条件语句
if (-1 == -1 == -1)
std::cout << "right";
相当于
if (true == -1)//since -1 === -1
std::cout << "right";
相当于
if (1 == -1) // true is casted to 1
std::cout << "right";
相当于
if (false)
std::cout << "right";
因此,该语句std::cout << "right";
通常不会执行,您一无所获。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句