Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查布尔值的数量是否为真,并根据数量的不同执行不同的操作_Java - Fatal编程技术网

Java 检查布尔值的数量是否为真,并根据数量的不同执行不同的操作

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

所以我试图检查多个布尔值(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 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个变量中?在列表中?在房子里?使用鼠标?寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整且可验证的示例。