📅  最后修改于: 2023-12-03 14:43:03.258000             🧑  作者: Mango
在Java编程中,经常需要打印矩阵。本文介绍一种以蛇模式打印矩阵的方式。
蛇模式打印矩阵是指按照蛇形的方式,从矩阵左上角开始逐个元素地输出全部矩阵元素。具体实现方法如下:
row
和 col
,分别表示当前输出元素的行号和列号。direction
,表示当前输出方向。初始值为向右。direction
向右,则先从左往右输出一行,然后把 row
的值加1,将 direction
调整为向下。direction
向下,则先从上往下输出一列,然后把 col
的值减1,将 direction
调整为向左。direction
向左,则先从右往左输出一行,然后把 row
的值减1,将 direction
调整为向上。direction
向上,则先从下往上输出一列,然后把 col
的值加1,将 direction
调整为向右。下面是Java代码实现蛇模式打印矩阵的方法,方法中的参数 matrix
表示待打印的矩阵,该方法会按蛇形方式输出矩阵中的所有元素。
public static void printMatrix(int[][] matrix) {
int row = 0; // 当前输出元素的行号
int col = 0; // 当前输出元素的列号
int direction = 1; // 当前输出方向,1 表示向右,2 表示向下,3 表示向左,4 表示向上
int rowCount = matrix.length; // 矩阵的行数
int colCount = matrix[0].length; // 矩阵的列数
for (int i = 0; i < rowCount * colCount; i++) { // 输出全部矩阵元素
System.out.print(matrix[row][col] + " "); // 输出当前元素
if (direction == 1) { // 向右输出
if (col == colCount - 1) { // 如果到了最右边,则向下
row++; // 行号加1
direction = 2; // 调整方向
} else { // 否则继续向右
col++; // 列号加1
}
} else if (direction == 2) { // 向下输出
if (row == rowCount - 1) { // 如果到了最下边,则向左
col--; // 列号减1
direction = 3; // 调整方向
} else { // 否则继续向下
row++; // 行号加1
}
} else if (direction == 3) { // 向左输出
if (col == 0) { // 如果到了最左边,则向上
row--; // 行号减1
direction = 4; // 调整方向
} else { // 否则继续向左
col--; // 列号减1
}
} else { // 向上输出
if (row == 0) { // 如果到了最上边,则向右
col++; // 列号加1
direction = 1; // 调整方向
} else { // 否则继续向上
row--; // 行号减1
}
}
}
}
下面是一个使用示例,该示例创建了一个3×3的矩阵,然后调用 printMatrix
方法按蛇模式打印矩阵中的所有元素。
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printMatrix(matrix);
该示例将输出以下结果:
1 2 3 6 5 4 7 8 9