我有3个数组,如果3个数组中只有1个不为空,我想传递一个if语句。如果只有1不为空而另外2个为空,我只想传递它。
现在我有一个疯狂的if声明,并想知道它是否可以简化
if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))
答案 0 :(得分:4)
假设a
,b
和c
是布尔值,其值指示相应的数组是否为空:
(a ^ b ^ c) && !(a && b && c)
如果按顺序对三个布尔值进行异或,则当且仅当一个变量为真时或者所有三个变量都为真时才为真。因此,表达式的第二部分,以消除所有三个变量都为真的情况。