java中用for循环嵌套打印矩阵,核心是外层控行、内层控列,通过索引联动实现结构化输出:①实心矩形用双固定循环;②数字矩阵用i*n+j+1或计数器;③直角三角形内层j≤i;④菱形/空心需条件判断。

Java 中用 for 循环嵌套打印矩阵,核心在于外层控制行、内层控制列,通过变量联动实现结构化输出。
理解矩阵打印的本质逻辑
所谓“矩阵打印”,本质是按行列规律输出字符或数字。比如打印 4×4 的 * 号方阵,需要输出 4 行,每行含 4 个 *;若打印数字矩阵(如左上角开始递增),则需让每个位置的值与行列索引相关联(如 value = i * n + j + 1)。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
关键点:
- 外层 for 控制总行数(i 从 0 到 rows-1)
- 内层 for 控制每行字符数(j 从 0 到 cols-1)
- 每次内层循环完成一行输出后,必须换行(System.out.println())
实战:四种常见矩阵样式写法
① 实心矩形(固定符号)
适合初学练手,验证循环结构是否正确:
- 外层 i 从 0 到 4(打印 5 行)
- 内层 j 从 0 到 6(每行 7 个 *)
- 内层用 System.out.print("*") 不换行,内层结束后加 println()
② 数字递增矩阵(n×n)
例如 3×3 输出 1~9:
- 设当前值 num = i * n + j + 1(i、j 从 0 开始)
- 或用独立计数器 int count = 1; ,每次打印后 count++
- 注意对齐:用 System.out.printf("%-3d", num) 保证列宽一致
③ 直角三角形(行数=列数递增)
第 i 行输出 i+1 个元素(i 从 0 开始):
- 外层 i:0 到 n-1
- 内层 j:0 到 i(不是固定 n)
- 可打印数字(j+1)、* 或 i+j 等组合,突出“依赖关系”
④ 菱形/空心矩形(需条件判断)
在双循环体内加 if 判断哪些位置该打印、哪些留空:
- 空心矩形:只在首行、末行、首列、末列打印 *,其余输出空格
- 菱形:根据行号计算左右空格数和中间符号数,如第 i 行(中心对齐)空格数 = Math.abs(n/2 - i)
避坑提醒:新手常犯的 3 个错误
忘记换行:只用 print 导致所有内容挤在一行 —— 必须在内层循环外、外层循环内加 println()
索引越界:j ≤ cols 写成 j 变量作用域误用:把 j 声明在外层,导致内层无法重置 —— 每次内层 for 都应重新声明 for(int j = 0; ...)
进阶技巧:让矩阵更灵活
把行数、列数、填充字符、起始值都作为方法参数传入,封装成可复用工具:
- 定义方法 printMatrix(int rows, int cols, char fill)
- 支持 lambda 表达式生成每个位置的值(如 (i,j) -> i*j)
- 结合 Scanner 输入动态尺寸,增强交互性
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










