如何在Java中打印3×3零网格?当前输出异常求助
问题描述
尝试打印一个3×3的零网格,但当前输出是第一列有9行零——示例输出表现为每行仅显示单个带边框的零,垂直排列成9行。
现有代码
public void displayBoard() { for (int row = 0; row<3; row++) { for (int column = 0; column<3; column++) { System.out.println("-------"); System.out.print("|"+ board.getCell(row, column)); System.out.println("|"); } } System.out.println("-------"); }
问题原因
问题出在列循环内的换行逻辑:
- 每次循环列时,都会先打印分隔线并换行,接着打印单个单元格后又换行,导致每个单元格单独占一行,3行×3列的网格被拆成了9行单元格。
修正代码
public void displayBoard() { // 遍历每一行 for (int row = 0; row<3; row++) { // 打印当前行的顶部分隔线 System.out.println("-------"); // 在同一行输出当前行的所有单元格 for (int column = 0; column<3; column++) { System.out.print("|" + board.getCell(row, column)); } // 补全行尾竖线并换行 System.out.println("|"); } // 打印最后一行的底部分隔线 System.out.println("-------"); }
修正说明
- 将分隔线打印移到行循环内部、列循环外部,确保每行仅打印一次顶部分隔线。
- 列循环内使用
print而非println,让同一行的三个单元格在同一行连续显示。 - 列循环结束后统一打印行尾竖线并换行,完成整行输出。
- 最后打印底部总分隔线,保证网格结构完整。
内容的提问来源于stack exchange,提问作者rookie45
相关产品推荐
相关产品推荐

