我想简化这种情况,其中a和b是布尔值
!((a && b) || (!a && !b))
我尝试使用真值表生成器,但我无法弄清楚简化版本。
答案 0 :(得分:10)
这可以简化为XOR
(独占或)。它相当于(a && !b) || (!a && b)
。
在Java中,它可以实现为a ^ b
答案 1 :(得分:8)
您可以在a!=b
,
因为,等同于:
!((a && b) || (!a && !b)) // not(both true or both false)
!(a==b) // not(both equals)
a!=b // different
以下是表格,其中确认您a
与b
不同:
a\b | true | false
true | false | true
false | true | false
答案 2 :(得分:5)
您可以简化为if (!(a==b))
或if (a!=b)
。
您的条件简化为“如果a和b都为真(即状态相等)或两者都为假,则条件解析为假”。或者“如果a与b的状态不同,则条件解析为true”。