以下是我的例子:
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个。
答案 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.length
为2
,但每个子数组的长度为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
当前获得的内部数组。