打印给定矩阵的行

时间:2015-11-01 21:32:30

标签: java arrays matrix methods

我试图制作一个接收矩阵并打印其线条的方法。例如:

line nb 1 : 3 2 5 6 
line nb 2 : 7 9 0 1 4 3 
line nb 3 : 3 5 3

我想知道为什么我不能使用此代码打印给定矩阵的行。而且,为什么我不能递增变量k,这显示了行的编号。

当我运行此代码时,它不会增加k。它始终显示行

的数字1

如何修复我的代码?

public static void PrintLine(int[][] matrix){

for (i = 0; i < matrix.length; ++i){   // Loop all long the lines of the matrix
            int k = 1;     // Number of the line
            System.out.print("Line nb " + k + matrix[i]);
            k = k+1;   // Increment the number of the line by 1
        }

}

3 个答案:

答案 0 :(得分:1)

k并没有增加;相反,只增加k以立即丢弃它,因为变量k的范围仅限于一次迭代(即,在花括号内)。以下应该有效:

for (int i = 0, k = 0; i < matrix.length; ++i, ++k) {
  /* work in terms of i and k */
}

在您的情况下,简化为使用ik用于相同目的:

for (int i = 0; i < matrix.length; ++i) {
  System.out.print("Line nb " + i + matrix[i]");
}

答案 1 :(得分:0)

您的k变量在for循环内初始化。这意味着在每次迭代时它都是新的变量。初始值为1。 将它的itialization移出循环:

            int k = 1;     // Number of the line
for (i = 0; i < matrix.length; ++i){   // Loop all long the lines of the matrix

答案 2 :(得分:0)

正如其他人指出k的范围不正确,您只需使用i的值,当您打印阵列时,您将获得对象参考详细信息,您可以使用Arrays.toString()从数组中打印值。

for (int i = 0; i < matrix.length; ++i) {
  System.out.print("Line nb " + i +": "+ Arrays.toString(matrix[i]));
}