当前位置: 首页 > 知识库问答 >
问题:

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

法烨烨
2023-03-14

我正在做一个项目,但是在这个特殊的部分我感到很难。我需要创建一个方法,如果一个2d数组中的所有条目都为假,则返回布尔值true,如果其中只有1个值为真,则返回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;
        }
     }
  }

我最初的想法是,我将使用一个“计数器”变量,这样,如果lightArray中的每个值都有一个“计数器”,if语句将只返回true。经过测试,当所有值都设置为false时,它似乎不会注册。

我还尝试了一个版本的代码

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

}

就这样读:

if (lightArray[i][j] == false) {
              return true;

根本不涉及“计数器”变量,但当该代码到位时,该方法在遇到单个假值时立即返回true。

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

共有1个答案

刘博雅
2023-03-14

通常,像您拥有的逻辑应该采用以下形式:

loop{
    if (negative_condition) return false;            
}
return true;

注意<code>返回true<code>在循环之外。

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

loop{
    loop{
        if (negative_condition) return false;  
    }          
}
return true;

查看上面的伪代码,您的Java代码应该如下所示:

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中有一个布尔数组: 检查所有值是否为真的最优雅的方法是什么? 问题答案:

  • 我试图获取数组的每个元素并检查它是否是回文。如果给定数组中的所有元素都是回文,那么它应该返回1,如果不是,那么它应该返回0。 例如输入5 111 222 333 444 555预期输出1我的输出0 谢谢你的帮助。

  • 问题内容: 我有一个的条目: 目前,我正在检查它是否包含真像这样: 这是检查布尔数组的 最快 方法吗?如果不是,执行此检查的最快方法是什么? 编辑: 通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示: 在五次跑步中的时间排名最高,排名第一: 在5334和11584 ns之间: } return false; 在160542和1

  • 问题内容: 如果Java中没有编译时绑定,是否意味着所有绑定都在运行时完成? 但是,按照OOP的运行时绑定概念,函数必须具有virtual关键字。.是否所有方法在Java中都是隐式虚拟的,还是Java中存在任何编译时绑定? 如果有任何编译时约束,您能给我一些具体情况,还是链接到更多信息 静态的(这里没有绑定的含义,因为静态不属于对象) 最终的(这不是有效点,因为可以通过其他方式实现) 问题答案:

  • 我正在尝试编写布尔方法,但它不起作用 它的工作,如果我写这个方法: 我应该如何为它制作布尔方法?

  • 问题内容: 在Java中,给定一个值数组(例如整数),是否有一种方法可以有效地检查它们是否都具有特定值? 例如,使用整数数组,例如: 并且只有在所有条件均为2的情况下,您才需要执行一项操作?有没有比这更有效的方法: 我知道可以用C ++做到这一点,但是Java呢? 问题答案: 或者,如果使用Java 8,则可以执行以下操作: 基本上,使用Streams可以非常简洁地完成与集合/数组有关的所有操作。