如何在控制台中将多个#字符绘制的数字点阵图案横向并排输出
解决方案
原来的单次打印单个数字全5行的逻辑会导致多数字上下堆叠,需要调整为按行批量打印所有数字的对应行:每一行先依次打印所有数字的当前行点阵,点阵之间加1个空格分隔,整行内容全部输出完成后再统一换行。
你原本代码里的i%2分支逻辑完全重复,属于冗余代码,优化版本已经直接删除。
修改后的代码如下:
// 可变参数支持传入任意个数字的点阵矩阵 static void print(int[][]... mats) { // 固定遍历5行(所有数字都是5*5点阵) for (int i = 0; i < 5; i++) { // 遍历每一个要打印的数字矩阵 for (int k = 0; k < mats.length; k++) { int[][] mat = mats[k]; // 打印当前数字的第i行 for (int j = 0; j < 5; j++) { System.out.print(mat[i][j] == 1 ? "#" : " "); } // 数字之间加1个空格分隔 if (k != mats.length - 1) { System.out.print(" "); } } // 整行所有数字都打完再换行 System.out.println(); } }
使用示例
要打印两个5并排的效果,直接传入两个5的点阵矩阵即可:
public static void main(String[] args) { int mat5[][] = { { 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1 }, { 0, 0, 0, 0, 1 }, { 1, 1, 0, 1, 1 } }; // 传入两个5的矩阵,实现并排打印 print(mat5, mat5); }
内容的提问来源于stack exchange,提问作者Androider
相关产品推荐
相关产品推荐

