Java 检查布尔值的数量是否为真,并根据数量的不同执行不同的操作
所以我试图检查多个布尔值(6),如果不止一个,两个,三个,等等是真的,我想执行不同的代码 下面是一个例子:Java 检查布尔值的数量是否为真,并根据数量的不同执行不同的操作,java,Java,所以我试图检查多个布尔值(6),如果不止一个,两个,三个,等等是真的,我想执行不同的代码 下面是一个例子: public static boolean x; public static boolean y; public static boolean z; public static boolean a; public static boolean b; public static boolean c; public static int amtTrue; //if x & y are
public static boolean x;
public static boolean y;
public static boolean z;
public static boolean a;
public static boolean b;
public static boolean c;
public static int amtTrue;
//if x & y are true, then set amtTrue to 1
//if y & z AND x & y are true, then set amtTrue to 2;
//keep iterating though all possiblilites
最有效的方法是什么
谢谢你的时间 只有六个布尔值,效率应该根本不重要,因此您可以集中精力制作最具可读性的解决方案
int i = 0;
for(boolean b : array)
if(b) i++;
switch(i){
case 0:
case 1:
case 2:
}
一种方法是创建一个变量参数助手方法,该方法在循环中进行计数,如下所示:
public static int countTrue(boolean... x) {
int count = 0;
for (boolean b : x) {
if (b) {
count++;
}
}
return count;
}
您可以从if
条件调用它,如下所示,以获得易于阅读的解决方案:
if (countTrue(bool1, bool2, bool3, bool4, bool5, bool6) > 4) {
...
}
你能举个例子吗?很难说出你在问什么。你问的确实很广泛!这些布尔数是一个数组吗?在6个变量中?在列表中?在房子里?使用鼠标?寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整且可验证的示例。