bool A=false;
bool B=true;
if(!A || !B)
{
.....
}
在A
为真的情况下,它没有检查B
,但我想检查B而不是A.
在这种情况下,如果任何一个为真(A或B),我想执行,但如果A为真,我也想检查B.除了使用不同的if条件之外,还有其他任何逻辑可以解决这个问题吗?
答案 0 :(得分:0)
您可以在编译器中关闭短路评估。如果您使用自己的类型,则可能会超载||
和&&
。重载的逻辑运算符不会短路。
两件事都非常糟糕。程序员期望逻辑运算符以某种方式运行,并且很可能与这种意外行为超级混淆。你应该坚持短路。