Java 如何遍历二维数组并按行主顺序计算每行中大于1的元素数

Java 如何遍历二维数组并按行主顺序计算每行中大于1的元素数,java,arrays,matrix,2d,Java,Arrays,Matrix,2d,我正在编写一个方法,该方法以行的主要顺序遍历2d数组,并在每行的开头将count变量初始化为零。在内部循环中,如果值不为零,则递增count变量。在行的末尾,如果count变量不完全等于1,则返回false。我已经在这方面工作了大约两个星期,找不到我的错误。请给我指一下正确的方向。 **不要介意print语句,我正在尝试查看计数是多少,我的代码似乎只命中数组的第二行 public static boolean isGPM(int[][] matrix) { int count =0;

我正在编写一个方法,该方法以行的主要顺序遍历2d数组,并在每行的开头将count变量初始化为零。在内部循环中,如果值不为零,则递增count变量。在行的末尾,如果count变量不完全等于1,则返回false。我已经在这方面工作了大约两个星期,找不到我的错误。请给我指一下正确的方向。 **不要介意print语句,我正在尝试查看计数是多少,我的代码似乎只命中数组的第二行

public static boolean isGPM(int[][] matrix) {
    int count =0;
    for (int row = 0; row < matrix.length; row++) {
        count =0;
        for (int col = 0; col < matrix[row].length; col++) {
            if (matrix[row][col] > 0) {
                count++;
            }
            else {
                return !gpm;
            }
        }
    }
    System.out.println(count);
    return gpm;
}
公共静态布尔isGPM(int[][]矩阵){
整数计数=0;
对于(int row=0;row0){
计数++;
}
否则{
返回!gpm;
}
}
}
系统输出打印项次(计数);
返回gpm;
}

如果我理解正确,您只关心每行的计数。这应该起作用:

        int count = 0;

        // Process each row...
        for (int row = 0; row < matrix.length; row++) {

            count = 0;

            // Process each column...
            for (int col = 0; col < matrix[row].length; col++) {

                 // Check the cell.
                 if (matrix[row][col] != 0) {
                     count++;
                 }                     
            }
            // Row processing complete. Check count.
            if (count != 1) {
                System.out.println(count);
                return gpm;
            }
        }
int count=0;
//处理每一行。。。
对于(int row=0;row
内部循环的其他部分出现问题。检查计数是否不等于1。您的意思是不为零或大于零吗?我还必须计算列计数,但我想我会先遍历行,然后对列执行相同的操作,但会按列-行顺序遍历。矩阵是否保证为正方形2D数组?如果是这样,上面答案中的代码可以用于行主要计数,并且可以修改代码的副本,将两行替换为行主要计数。如果矩阵不是一个二维正方形数组,即行的长度不完全相同,那么您需要在代码的主版本列中说明这一点。祝福大家