优化if条件

时间:2018-04-27 19:09:11

标签: java if-statement

我想简化这种情况,其中a和b是布尔值

!((a && b) || (!a && !b))

我尝试使用真值表生成器,但我无法弄清楚简化版本。

3 个答案:

答案 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

以下是表格,其中确认您ab不同:

 a\b  | true  | false
true  | false | true
false | true  | false

答案 2 :(得分:5)

您可以简化为if (!(a==b))if (a!=b)

您的条件简化为“如果a和b都为真(即状态相等)或两者都为假,则条件解析为假”。或者“如果a与b的状态不同,则条件解析为true”。