我需要实现一个功能,它将布尔值列表作为输入,并仅在其中一个条件为真时返回true(如果有更多,则返回false)。 更正式地说,f(c1,c2,c3 ... cN)
仅在只有一个条件为 true 时返回true,否则返回false。
我已经实现了这个方法,
boolean trueOnce(boolean[] conditions) {
boolean retval = false;
for (boolean c: conditions) {
if (c) {
if (!retval) {
retval = true;
} else {
retval = false;
break;
}
}
}
return retval;
}
但我希望得到更实用的解决方案。我正在使用Java,但我认为这个问题对于每种编程语言都是普遍存在的。谢谢。
编辑:上面的示例已经很好地完成了工作,我只是在寻求一种更实用的方式。