如果 3 个参数中只有 1 个为真,则返回真 [关闭]

Posted

技术标签:

【中文标题】如果 3 个参数中只有 1 个为真,则返回真 [关闭]【英文标题】:Return true if only 1 parameter out of 3 is true [closed] 【发布时间】:2018-06-09 12:50:19 【问题描述】:

我有 3 个数组,如果 3 个数组中只有 1 个不为空,我想传递一个 if 语句。如果只有 1 个不为空而其他 2 个为空,我只想通过它。

现在我有一个疯狂的 if 语句,想知道它是否可以简化

if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))

【问题讨论】:

var bob = new int[] a, b, c; var oneMatch = bob.Count(z => z.Length > 0) == 1;int 更改为您的类型。 我假设您的数组名为 abc 你一直使用itit这个词很难理解你指的it是什么。其次,您的代码实际上没有意义.. a b c 是什么?如果它们是数组,它们就没有意义。 我在想,让abc 等于1 如果为真,0 否则,然后添加它们。检查总和是否为1 XOR of three values的可能重复 a、b 和 c 是数组还是布尔值? 【参考方案1】:

假设abc是布尔值,其值指示对应的数组是否为空:

(a ^ b ^ c) && !(a && b && c)

如果您按顺序对三个布尔值进行异或运算,当且仅当只有一个变量为真或三个变量都为真时,它才会为真。因此,表达式的第二部分,以消除所有三个变量都为真的情况。

【讨论】:

以上是关于如果 3 个参数中只有 1 个为真,则返回真 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java基础总结

需要验证码,因此 3 个布尔字段中只有 1 个可以为真

具有 10 个元素的随机布尔数组,其中 10 个元素中有 3 个为真 [重复]

Excel教程(10) - 逻辑运算符

sss

Python学习之路8 - 内置方法