使用Java中的方法检查2d布尔数组中的所有项是否为真/假?
我正在做一个项目,但在这一部分我感到很困惑。我需要创建一个方法,如果2d数组中的所有条目都为false,则该方法返回布尔值true;如果这些值中只有一个为true,则该方法返回false。目前,我在方法中的代码类似于:使用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
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
值。哇,是的,谢谢你,我应该看到这一点,我感谢你的建议