-2

これが私の例です:

    int myMultiDimenArray[][] = {{4,5,6},{7,8,9}};
      for(int i=0;i<myMultiDimenArray.length;i++)
      for(int j=0;j<myMultiDimenArray.length;j++)
       {
          arrayTotal+=myMultiDimenArray[i][j];
       }
       System.out.println(arrayTotal);

これは合計 24 個しか出力しません。

4

4 に答える 4

4

変化する

for(int i=0;i<myMultiDimenArray.length;i++)
      for(int j=0;j<myMultiDimenArray.length;j++)
       {
          arrayTotal+=myMultiDimenArray[i][j];
       }
}

for(int i=0;i<myMultiDimenArray.length;i++)
      for(int j=0;j<myMultiDimenArray[i].length;j++)
       {
          arrayTotal+=myMultiDimenArray[i][j];
       }
}

Java の多次元配列は、配列の配列です。myMultiDimenArray.lengthですが2、各サブ配列の長さは3です。4+5+7+8 を計算していましたが、これは 24 に相当します。

于 2013-07-21T02:33:14.147 に答える
2

ループの問題は、内側のループが最初の次元ではなく 2 番目の次元を反復する必要があることです。現在、コードは 2x3 配列の 2x2 サブ配列を繰り返します。そのため、39 の代わりに 24 を取得しています。

for(int i=0;i<myMultiDimenArray.length;i++)
for(int j=0;j<myMultiDimenArray[i].length;j++)
   {
      arrayTotal+=myMultiDimenArray[i][j];
   }
于 2013-07-21T02:33:16.327 に答える
1

j間違った配列の長さと比較しているjため、2代わりに3次のようになります。

j<myMultiDimenArray.length

条件は次のとおりです。

j<myMultiDimenArray[i].length
于 2013-07-21T02:32:59.587 に答える
1

試す:

for(int i=0;i<myMultiDimenArray.length;i++) {
      for(int j=0;j<myMultiDimenArray[i].length;j++) {
          arrayTotal+=myMultiDimenArray[i][j];
      }
}

それ以外の場合jは、現在取得している内部配列ではなく、配列全体0の長さになります。i

于 2013-07-21T02:33:10.753 に答える