0

これをもっと簡単な方法でコーディングするにはどうすればよいですか?

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;
    }
}

私が現在持っているのは「ifelseステートメント」です。配列内の要素だけがゼロでない場合、ブール値がtrueに変更されます。しかし、私が必要としているのは、配列内のすべての要素がゼロでないことを確認することです。そうすると、ブール値がtrueに変更されます。

4

4 に答える 4

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;
    }
}
于 2012-12-23T10:25:25.290 に答える
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");
}
于 2012-12-23T10:27:50.900 に答える
0

編集:

boolean isAllNonZero = true;
for(int i = 0; i < array.length; i++) {
    if(myArray[i] == 0) {
        isAllNonZero = false;
        break;
    }
}
于 2012-12-23T10:27:08.600 に答える
0

これは(私が思うに)それを行う最も簡単な方法です:

boolean allNonZero = true;
for (int i : array)
    if (!(allNonZero &= i != 0)) break;
于 2012-12-23T10:35:06.380 に答える