首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java - 2D数组-不能使用增强循环?

Java - 2D数组-不能使用增强循环?
EN

Stack Overflow用户
提问于 2018-08-14 07:58:00
回答 1查看 64关注 0票数 1
代码语言:javascript
复制
    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;
}

这是我正在编写的代码。如果行索引等于列索引,则目标很简单。正常的循环可以工作,但我在将其转换为增强循环时遇到了问题。我听说它有时不起作用,我接受它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 08:08:09

没有办法在增强的for循环中获得索引。你必须自己跟踪位置:

代码语言:javascript
复制
int i = 0;
for (int[] rij : a) {
    int j = 0;
    for (int kol : rij) {
        if (i == j) {
            som += kol;
        }
        j++;
    }
    i++;
}

我认为很明显,原始的方式是可取的。

但是一开始就没有理由去遍历整个矩阵。这里有一个更简单的解决方案:

代码语言:javascript
复制
for (int i = 0; i < a.length; i++) {
    if (i < a[i].length) {
        som += a[i][i];
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51832016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档