首页 > 解决方案 > For循环在java中不起作用的条件

问题描述

我正在尝试计算矩阵对角线的总和。但它排除了一个元素。我使用 if-else 解决了我的问题,但我不明白为什么 for-loop 不起作用。请帮忙 !

public class sumDia {
    public static void main(String[] args){
        int[][] A = {{1, 2, 3}, {4, 5, 6}, {6, 7, 8}};

        int i, j;
        int sum = 0;
        for(i = 0, j = 0; i == j && j < A.length; i++, j++) sum += A[i][j];

        // for(i = 0, j = A.length - 1; i != j && i < A.length && j >= 0; i++, j--) sum += A[i][j];
        // ( i != j ) Not Working... I don't know why

        for(i = 0, j = A.length - 1; i < A.length && j >= 0; i++, j--){
            if(i != j){
                sum += A[i][j];
            }
        }

        System.out.println("Sum of Diagonals is : " + sum);
    }
}

对角线:[0][0] , [1][1] , [2][2] and [0][2] , [1][1] , [2][0]。在第二对角线[1][1]重复这就是为什么我使用 ( i != j)删除它

注意:注释 for 循环中的问题

标签: javafor-loop

解决方案


i != j为什么这是在for循环条件下?
对角元素索引是[0][0],[1][1],[2][2][0][2],[1][1],[2][0]
第 2 条对角线具有[1][1]i==j,因此i != j在第 2 次迭代中条件为假,并将退出 for 循环,该循环忽略第 2 和第 3 个元素。


推荐阅读