Java输出乘法表的基本方法
在Java编程中,输出乘法表是初学者常见的练习题,它不仅能帮助理解循环结构,还能提升代码逻辑的编写能力,乘法表的核心是通过嵌套循环实现行和列的遍历,并结合格式化输出确保对齐美观,以下是实现乘法表的几种方法,从基础到优化,逐步展示不同思路和技巧。

使用for循环实现基础乘法表
最基础的方法是利用两层for循环,外层循环控制行数,内层循环控制列数,输出9×9的乘法表,代码可以这样编写:
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + " × " + i + " = " + (i * j) + "\t");
}
System.out.println();
}
}
}
代码解析:
- 外层循环变量
i代表行数,从1到9递增; - 内层循环变量
j代表列数,从1到当前行数i递增; - 使用
System.out.print输出每一项,并通过\t制表符对齐; - 每行结束后用
System.out.println()换行。
这种方法简单直观,但输出结果可能存在对齐问题,尤其是当乘积为两位数时,会导致列宽不一致。
优化输出格式实现对齐
为了使乘法表更加美观,可以通过调整输出格式确保对齐,Java的printf方法支持格式化输出,可以指定字符串宽度,
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d × %d = %-2d\t", j, i, i * j);
}
System.out.println();
}
}
}
关键改进:
%-2d表示左对齐,占2位宽度,确保个位数和两位数对齐;- 保留
\t作为辅助对齐,使输出更加整齐。
优化后的乘法表在视觉上更加规范,适合展示或打印。

使用while循环实现
除了for循环,while循环也可以实现乘法表,其逻辑与for循环类似,但语法结构不同:
public class MultiplicationTable {
public static void main(String[] args) {
int i = 1;
while (i <= 9) {
int j = 1;
while (j <= i) {
System.out.printf("%d × %d = %-2d\t", j, i, i * j);
j++;
}
System.out.println();
i++;
}
}
}
对比分析:
- while循环需要手动初始化和更新循环变量;
- 适用于循环次数不确定的场景,但乘法表的行数固定,for循环更简洁。
自定义乘法表大小
通过用户输入或变量控制乘法表的大小,例如输出12×12的乘法表:
import java.util.Scanner;
public class MultiplicationTable {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入乘法表的大小:");
int size = scanner.nextInt();
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d × %d = %-3d\t", j, i, i * j);
}
System.out.println();
}
scanner.close();
}
}
新增功能:
- 使用
Scanner类获取用户输入; - 动态调整乘法表大小,适应不同需求;
- 将格式化宽度调整为
%-3d,适应更大的乘积。
使用方法封装提升复用性
将乘法表的输出逻辑封装为方法,提高代码复用性:
public class MultiplicationTable {
public static void printTable(int size) {
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d × %d = %-3d\t", j, i, i * j);
}
System.out.println();
}
}
public static void main(String[] args) {
printTable(9);
printTable(12);
}
}
优势:

- 方法封装后,可通过参数灵活控制乘法表大小;
- 避免重复代码,符合DRY(Don’t Repeat Yourself)原则。
输出上三角乘法表
除了传统的下三角乘法表,还可以输出上三角形式,即列数大于等于行数:
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = i; j <= 9; j++) {
System.out.printf("%d × %d = %-2d\t", i, j, i * j);
}
System.out.println();
}
}
}
变化点:
- 内层循环从
i开始,确保列数不小于行数; - 输出结果呈现倒三角形状,适合多样化需求。
Java输出乘法表的核心在于循环嵌套和格式化输出,从基础的for循环到自定义大小、方法封装,再到不同形状的变体,每种方法都有其适用场景,初学者应重点掌握循环逻辑和格式化技巧,进阶者则可关注代码复用和扩展性,通过不断练习,不仅能巩固Java基础,还能培养良好的编程习惯。


















