是否可以对多维数组执行算术运算?

时间:2013-07-21 02:27:06

标签: java

以下是我的例子:

    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 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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];
   }

答案 2 :(得分:1)

您正在将j与错误数组的长度进行比较,因此j结束2而不是3

j<myMultiDimenArray.length

条件应该是:

j<myMultiDimenArray[i].length

答案 3 :(得分: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当前获得的内部数组。