确保数组中的所有元素都不为零

时间:2012-12-23 10:21:04

标签: java arrays

如何以更简单的方式对此进行编码?

for(int i=0; i<array.length; i++)
{
    if(myArray[i] == 0)
    {
        myBoolean = false;
        break;
    }
    else if(myArray[0] != 0 && myArray[1] != 0 && myArray[2] != 0)
    //may continue depending on array length
    {
        myBoolean = true;
    }
}

我目前拥有的是“if else语句”,如果在我的数组中,只是一个元素不为零,它会将我的布尔值更改为true。但我需要的是确保数组中的所有元素都不为零,然后它会将布尔值更改为true。

4 个答案:

答案 0 :(得分:5)

你过度复杂了::-) (我之前似乎误读了这个问题,但我现在已经修复了答案。)

boolean allNonZero = true;
for (int i = 0; allNonZero && i < array.length; ++i) {
    if (array[i] == 0) {
        allNonZero = false;
    }
}

甚至

boolean allNonZero = true;
for (int i = 0; allNonZero && i < array.length; ++i) {
    allNonZero = array[i] == 0;
}

或使用增强型for循环:

boolean allNonZero = true;
for (int entry : array) {
    if (entry == 0) {
        allNonZero = false;
        break;
    }
}

答案 1 :(得分:0)

编辑:

boolean isAllNonZero = true;
for(int i = 0; i < array.length; i++) {
    if(myArray[i] == 0) {
        isAllNonZero = false;
        break;
    }
}

答案 2 :(得分:0)

只需检查假装零。

boolean isAllNonZero = true;
for(int i=0; i<array.length; i++)
{
    if(myArray[i] == 0)
    {
        isAllNonZero = false;
        break;
    }
}
if(!isAllNonZero) {
  System.out.println("Array Contains zero value");
}

更多

int count = 0 ;
for(int i=0; i<array.length; i++)
{
    if(myArray[i] == 0)
    {
        count++;
    }
}
if(count>0){
  System.out.println("Array Contains "+count+" zeros");
}

答案 3 :(得分:0)

这是(我认为)最简洁的方法:

boolean allNonZero = true;
for (int i : array)
    if (!(allNonZero &= i != 0)) break;