我正在做一个项目,但是在这个特殊的部分我感到很难。我需要创建一个方法,如果一个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数组中的每个值?
通常,像您拥有的逻辑应该采用以下形式:
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可以非常简洁地完成与集合/数组有关的所有操作。