-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.length2,但每个子数组的长度为3。您正在计算 4+5+7+8,等于 24。

于 2013-07-21T02:33:14.147 回答
2

你的循环的问题是内部循环应该迭代第二个维度,而不是第一个。目前,您的代码会迭代 2x3 数组的 2x2 子数组;这就是为什么你用 24 代替 39。

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 回答