我不确定从逻辑上讲我错了。对角和非对角矩阵均返回true。我还是2D阵列的新手,已经看过视频并在线阅读了。我确实了解2D阵列的工作原理,但是我无法获得正确的答案。

..
else{
    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix.length; j++) {
            if((i != j) && (matrix[i][j] != 0)){
                isDyg = false;
            }

        }
        //System.out.print("");
    }
    isDyg = true;
}
return isDyg;

最佳答案

因为循环结束后,isDyg每次都设置为true。

isDyg = false;更改为return false;

或将您的代码更改为-

        isDyg = true;
        outerloop:
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix.length; j++) {
                if((i != j) && (matrix[i][j] != 0)){
                    isDyg = false;
                    break outerloop;
                }

            }
            //System.out.print("");
        }
        return isDyg;

10-08 09:13