public static int berekenSomElementenIdentiekRijKolom(int[][] a) {
int som = 0;
// for (int i = 0; i < a.length; i++) {
// for (int j = 0; j < a.length; j++) {
// if ( i == j ) {
// som += a[i][j];
// }
// }
//
// }
// return som;
// }
for (int[] rij : a){
for (int[] kol :a){
if (rij == kol){
som+= int[rij][kol];
}
}
}
return som;
}
这是我正在编写的代码。如果行索引等于列索引,则目标很简单。正常的循环可以工作,但我在将其转换为增强循环时遇到了问题。我听说它有时不起作用,我接受它。
发布于 2018-08-14 08:08:09
没有办法在增强的for循环中获得索引。你必须自己跟踪位置:
int i = 0;
for (int[] rij : a) {
int j = 0;
for (int kol : rij) {
if (i == j) {
som += kol;
}
j++;
}
i++;
}
我认为很明显,原始的方式是可取的。
但是一开始就没有理由去遍历整个矩阵。这里有一个更简单的解决方案:
for (int i = 0; i < a.length; i++) {
if (i < a[i].length) {
som += a[i][i];
}
}
https://stackoverflow.com/questions/51832016
复制相似问题