Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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中的方法检查2d布尔数组中的所有项是否为真/假?_Java_Arrays_Methods_Boolean - Fatal编程技术网

使用Java中的方法检查2d布尔数组中的所有项是否为真/假?

使用Java中的方法检查2d布尔数组中的所有项是否为真/假?,java,arrays,methods,boolean,Java,Arrays,Methods,Boolean,我正在做一个项目,但在这一部分我感到很困惑。我需要创建一个方法,如果2d数组中的所有条目都为false,则该方法返回布尔值true;如果这些值中只有一个为true,则该方法返回false。目前,我在方法中的代码类似于: int counter = 0; for (int i = 0; i < lightArray.length; i++){ for(int j = 0; j <lightArray[0].length; i++) { if (lightA

我正在做一个项目,但在这一部分我感到很困惑。我需要创建一个方法,如果2d数组中的所有条目都为false,则该方法返回布尔值true;如果这些值中只有一个为true,则该方法返回false。目前,我在方法中的代码类似于:

int counter = 0;
  for (int i = 0; i < lightArray.length; i++){
     for(int j = 0; j <lightArray[0].length; i++) {
        if (lightArray[i][j] == false) {
           counter++;
           if (counter == lightArray.length * lightArray[0].length) {
              return true;
           }
        }
        else {
           return false;
        }
     }
  }
}

就这样读吧:

if (lightArray[i][j] == false) {
              return true;
根本不涉及“counter”变量,但当代码就位时,只要遇到一个false值,该方法就会返回true


是否有另一种我没有想到的方法,可以在返回布尔值之前检查2D数组中的每个值?

通常,像您这样的逻辑应该是以下形式:

loop{
    if (negative_condition) return false;            
}
return true;
请注意,
return true
在循环之外

在您的例子中,您有嵌套循环,它应该如下所示:

loop{
    loop{
        if (negative_condition) return false;  
    }          
}
return true;
for (int i = 0; i < lightArray.length; i++){
    for(int j = 0; j <lightArray[0].length; j++) {
       if (lightArray[i][j] == true) return false;
    }
 }

 return true;
查看上述伪代码,您的Java代码应该如下所示:

loop{
    loop{
        if (negative_condition) return false;  
    }          
}
return true;
for (int i = 0; i < lightArray.length; i++){
    for(int j = 0; j <lightArray[0].length; j++) {
       if (lightArray[i][j] == true) return false;
    }
 }

 return true;
for(int i=0;i对于(int j=0;j)“该方法在遇到单个false值时立即返回true。”让它做相反的事情:当它命中一个
true
值时,立即返回
false
值。如果你遍历整个数组而没有发生这种情况,那么你就会知道它只包含
false
值。哇,是的,谢谢你,我应该看到这一点,我感谢你的建议