我有一个类Mold,它的构造函数如下
public Mold(int[][] mold){
this.mold = mold;
}我还有一个方法sum(),如下所示:
public int sum(){
int sum = 0;
for( int i = 0; i <matrix.length; i++) {
sum += matrix[i][i];
}
return sum;
}我想要做的是计算Mold中所有元素的总和,但是我不知道在sum += matrix[i][i];部分中用什么来代替'i‘。我甚至可能是用完全错误的方式做的。我被困在这件事上已经有一段时间了,我似乎弄不明白。
我想要得到的输出的一个例子是:int[][] test1 = { { 10, 5 }, { 2, 8 } };应该给出一个25的和方法。
如果有人能把我推向正确的方向,那就太好了!非常感谢,
发布于 2013-09-19 16:42:42
你这样做:
假设一个由3x3元素组成的二维数组,这些是它们的坐标(行、列):
[0,0][0,1][0,2]
[1,0][1,1][1,2]
[2,0][2,1][2,2]您只使用一个循环和循环中的一个变量进行计数的方式如下:
i = 0 (计算elemen 0,0)
[*][ ][ ]
[ ][ ][ ]
[ ][ ][ ]i = 1 (计算elemen 1,1)
[ ][ ][ ]
[ ][*][ ]
[ ][ ][ ]i = 2 (计算elemen 2,2)
[ ][ ][ ]
[ ][ ][ ]
[ ][ ][*]你需要用一个双圈来做和。循环每一行,对于被循环的每一行,您必须对该行的每一列进行循环。
就像这样:
for (i = 0; i < maxRows; i++){
for (j = 0; j < maxCols; j++{
//
}
}发布于 2013-09-19 16:37:57
按照您的方式,您将只对[0][0]、[1][1]、[2][2]、.、[i][i]和大多数元素进行汇总。
数组中有两个维度,所以需要两个循环。
在现有的for循环中创建另一个for循环,并使用不同的循环变量j。当它到达当前行的长度:matrix[i].length的末尾时,它将停止。当添加到sum时,使用两个循环变量:matrix[i][j]。
发布于 2013-09-19 16:38:22
在当前的方法中,您只是在对角线(0,0)、(1,1)、(2,2)中添加元素。如果处理数组的数组,可以使用 loop两次:一个用于遍历数组中的元素,另一个用于遍历数组中的元素:
int sum = 0;
for(int[] moldElement : mold) {
for(int element : moldElement) {
sum += element;
}
}
return sum;https://stackoverflow.com/questions/18900331
复制相似问题