九九乘法表是迴圈巢狀結構的經典練習。本文提供完整三角、下三角、上三角三種輸出模式,並示範格式化對齊技巧。
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.printf("%d×%d=%-3d", i, j, i * j); // %-3d 左對齊佔 3 寬
}
System.out.println();
}
}
}
輸出片段:
1×1=1 1×2=2 1×3=3 ... 1×9=9 2×1=2 2×2=4 2×3=6 ... 2×9=18 ... 9×1=9 9×2=18 ... 9×9=81
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) { // 關鍵:j <= i
System.out.printf("%d×%d=%-3d", i, j, i * j);
}
System.out.println();
}
1×1=1 2×1=2 2×2=4 3×1=3 3×2=6 3×3=9 ... 9×1=9 ... 9×9=81
for (int i = 1; i <= 9; i++) {
for (int j = i; j <= 9; j++) { // 關鍵:j = i 起始
System.out.printf("%d×%d=%-3d", i, j, i * j);
}
System.out.println();
}
1×1=1 1×2=2 ... 1×9=9 2×2=4 2×3=6 ... 2×9=18 ... 9×9=81
public class PrettyTable {
public static void main(String[] args) {
final int MAX = 9;
final int WIDTH = 8; // 每欄固定 8 字元
for (int i = 1; i <= MAX; i++) {
for (int j = 1; j <= i; j++) {
String cell = String.format("%d×%d=%d", i, j, i*j);
System.out.printf("%-" + WIDTH + "s", cell);
}
System.out.println();
}
}
}
public static void printRow(int i, int j) {
if (j > i) { System.out.println(); return; }
System.out.printf("%d×%d=%-3d", i, j, i*j);
printRow(i, j+1);
}
public static void printTable(int i) {
if (i > 9) return;
printRow(i, 1);
printTable(i+1);
}
| 模式 | 內層迴圈條件 | 輸出行數 | 總算式數 |
|---|---|---|---|
| 全三角 | j ≤ 9 | 9 | 81 |
| 下三角 | j ≤ i | 9 | 45 |
| 上三角 | j ≥ i | 9 | 45 |
for:外層控制行(被乘數),內層控制列(乘數)。printf 格式化:%-3d 左對齊、%3d 右對齊、%4d 固定寬度。j <= i vs j < i、j = i 起始值差異。