Void方法打印两次

Mad*_*ddy 6 java

您好我正在尝试理解我编写的代码,为什么它打印下面的输出

public void isSymmetricNow(int[][] matrix){
    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix.length; j++) {
            if (matrix[i][j] != matrix[j][i]) {
                System.out.print("matrix is not symmetric \n");
            }
        }
    }
    System.out.print("matrix is symmetric \n");
}
Run Code Online (Sandbox Code Playgroud)

打印我

matrix is not symmetric 
matrix is not symmetric 
matrix is symmetric 
Run Code Online (Sandbox Code Playgroud)

假设给定矩阵在这里不对称.

int matrix3[][] = {{1,4,7},{-4,6,6},{7,6,9}};
Run Code Online (Sandbox Code Playgroud)

如何修改此代码,让我回想一下矩阵是对称的还是不对称的.

Uma*_*nth 6

只需一份简单的退货声明即可.如果条件为假,它将不会再次执行.

public void isSymmetricNow(int[][] matrix){
    //Random random = new Random();
    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix.length; j++) {
            //matrix[i][j] = random.nextInt(20);
            if (matrix[i][j] != matrix[j][i]) {
                System.out.print("matrix is not symmetric \n");
                return;
            }
        }
    }
    System.out.print("matrix is symmetric \n");
}
Run Code Online (Sandbox Code Playgroud)

要么

你可以返回一个布尔表示它是对称的.

public boolean isSymmetricNow(int[][] matrix){
    //Random random = new Random();
     for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix.length; j++) {
            //matrix[i][j] = random.nextInt(20);
            if (matrix[i][j] != matrix[j][i]) {
                return false;
            }
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

然后使用你的函数调用它.

if(isSymmetric(matrix))
    System.out.println("Symmetric");
else
    System.out.println("Not Symmetric");
Run Code Online (Sandbox Code Playgroud)