java - 为什么这个数组检查不起作用?

标签 java arrays

我正在尝试检查数组中是否有 1 或 3,如果找到其中一个,则打印 false,否则打印 true。我有这个:

if(array[i] == 1){
 bool = false;
}
else if(array[i] == 3){
 bool = false;
}
else{
 bool = true; 
}

但是,它并非在所有情况下都有效。

如果输入是0 2 4,它会按预期打印 true。

但是如果输入是 4 2 7 1 8 它应该是 false,因为有一个 1,但它打印 true。

我做错了什么?

编辑:向 if 添加了一个中断并更改了 if 语句。现在可以工作了。

 if(array[i] == 1 || array[i] == 3){
     bool = false;
     break;
    }
    else{
     bool = true; 
    }

最佳答案

更好的方法是

boolean flag = true;

for(int i=0; i<myArray.length; i++)
{
    if(myArray[i]==1 || myArray[i]==3){
        flag = false;
        break;
    }
}

return flag;

关于java - 为什么这个数组检查不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495376/

相关文章:

java - 如何通过 JavaFX 而不是 FXML CSS 修改 MenuButton 箭头颜色?

for-loop - CICS 中 JVM 不受支持的版本

javascript - 字典数组的最小值和最大值 (JSON)

java:尝试通过方法从字符串数组返回字符串值

javascript - 表中的 Angular 重复

java getRuntime().exec() 不工作?

java - 如何使用 Graphics2D 执行 MULTIPLY 复合效果

java - 需要一些关于十六进制到十进制算法如何工作的解释

在 C 中将十六进制转换为 float ,反之亦然

python - 使用 [ :] syntax 的 numpy 维度问题