标签: c++
有没有更好的方法来检查x && (!y || (y && z))是否属实? 我想我可以为此创建一个函数并执行x && not_or_and(y, z)之类的操作来减轻一些痛苦。但这真的是我能做的吗?
x && (!y || (y && z))
x && not_or_and(y, z)
答案 0 :(得分:11)
忽略表达式中的副作用,这在逻辑上是等效的
x && (!y || z)
您在y中为(y && z)进行的额外检查是多余的,因为如果您到达需要检查表达式的那一部分的位置,那么&# 39;已经确定!y是假的,这意味着y是真的。
y
(y && z)
!y