我需要检查 9 个条件的真假,并且它们需要一次全部为真。怎么可能检查,除此之外
if (condition1 && condition2 && condition3 ... && condition9) {
...
}
认为我正确使用了“条件”一词。
我需要检查 9 个条件的真假,并且它们需要一次全部为真。怎么可能检查,除此之外
if (condition1 && condition2 && condition3 ... && condition9) {
...
}
认为我正确使用了“条件”一词。
很难知道您是否不显示更多代码.....
但是,如果我只有那段代码,我可以推荐三件事:
1.如果你有这个信息,从最有可能是假的条件开始,这可能会提高性能.....更多信息在这里短路
2.另一件事,如果你有一个数组中的所有条件,你可以循环遍历数组......这样的事情:
public boolean testCondition(boolean conditionsArray[]){
for(int i = 0; i < array.length; i++){
if(!conditionsArray[i])
return false;
}
return true;
}
发布更多代码,我将尝试改进我的答案。
3.您可能还想重新考虑数据结构。如果您需要测试这样的 9 个给定条件(只是可能),您的设计中可能有些东西不是很干净。
希望能帮助到你。
每当我在代码中遇到这种情况时,我就知道我做错了,需要重新考虑我的对象结构。
但是,仅在问题的纯级别上,只要条件在某种集合中,这将起作用:
boolean allTrue = true;
for (boolean condition : conditions) {
allTrue &= condition;
}
然后对 allTrue 变量执行 if。请注意,我假设集合不为空,或者如果是,则应将其视为真实条件。
很可能在现实世界中,您必须将这些条件包装在具有公共接口的某种对象中,该接口具有返回布尔值并使用该方法的方法,而不是拥有纯布尔值的集合。