九九乘法表用双层for循环实现:外层i控制被乘数(1-9),内层j控制乘数(1-i),System.out.print()输出格式化算式,每行末System.out.println()换行。

Java 中用循环打印九九乘法表,核心是用两层 for 循环:外层控制行(被乘数),内层控制列(乘数),且内层循环上限随行号递增(保证只输出上三角部分),再用 System.out.print() 控制格式,避免自动换行。
基础版本:左对齐,每行末尾换行
这是最常见写法,用两个嵌套 for 循环,内层上限为外层当前值:
<font size="2"><pre class="brush:php;toolbar:false;">for (int i = 1; i <= 9; i++) {<br> for (int j = 1; j <= i; j++) {<br> System.out.print(j + "×" + i + "=" + (i * j) + "\t");<br> }<br> System.out.println(); // 每行结束后换行<br>}说明:
• 外层 i 表示乘数(即等号右边的数),从 1 到 9
• 内层 j 表示被乘数,从 1 到 i,确保不重复、不越界(如第 3 行只到 3×3)
• 用 \t(制表符)对齐,视觉更整齐
• println() 在每行所有算式输出后换行
优化格式:右对齐 + 固定宽度,更美观
原版用 \t 在不同终端可能错位。改用 printf 控制字段宽度,实现右对齐:
立即学习“Java免费学习笔记(深入)”;
<font size="2"><pre class="brush:php;toolbar:false;">for (int i = 1; i <= 9; i++) {<br> for (int j = 1; j <= i; j++) {<br> System.out.printf("%d×%d=%-2d ", j, i, i * j);<br> }<br> System.out.println();<br>}说明:
• %-2d 表示“数字左对齐,占至少 2 个字符宽度”,让等号后结果对齐
• 空格代替 \t,兼容性更好
• 若想更紧凑,可把 改成 (但纯文本环境不用 HTML)
拓展思路:用 while 替代 for(理解循环本质)
for 循环本质是 while 的语法糖,完全可用 while 实现:
<font size="2"><pre class="brush:php;toolbar:false;">int i = 1;<br>while (i <= 9) {<br> int j = 1;<br> while (j <= i) {<br> System.out.print(j + "×" + i + "=" + (i * j) + "\t");<br> j++;<br> }<br> System.out.println();<br> i++;<br>}说明:
• 外层 while 控制行,内层 while 控制列
• 手动管理循环变量(i++、j++),逻辑更显式,适合初学理解执行流程
• 注意别漏掉变量自增,否则死循环
常见错误提醒
初学者容易踩的坑:
- 内层循环写成
j → 输出完整 9×9 表(81 项),不是“九九乘法表”的传统上三角形式 - 混淆
i和j角色,比如把乘积写成i * j却把字符串拼成i + "×" + j→ 出现 “3×2=6” 这类反序(应为 “2×3=6”) - 用
println()在内层循环里 → 每个算式都换一行,变成竖排而非横排 - 中文符号混用:用全角 × 或 = → 编译报错,必须用英文
*和=(字符串中可写“×”“=”,但推荐用英文 * 避免编码问题)



















