首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

For 迴圈經典案例:九九乘法表五種變體完整實作

     編輯:Java 綜合教學

For 迴圈經典案例:九九乘法表五種變體完整實作

核心邏輯解析

九九乘法表本質是雙層巢狀迴圈:外層控制行數(被乘數 1~9),內層控制每行列數(乘數 1~行數)。透過調整迴圈範圍、輸出格式與條件判斷,可產生多種視覺變體。

五種變體完整程式碼

Print99.java - 核心邏輯類

public class Print99 {

    /** 1. 標準左對齊三角形 */
    public void test9901() {
        System.out.println("=== 1. 標準左對齊 ===");
        for (int i = 1; i <= 9; i++) {          // 行:被乘數
            for (int j = 1; j <= i; j++) {      // 列:乘數(1 到 i)
                System.out.printf("%d×%d=%-2d  ", j, i, i * j);
            }
            System.out.println();
        }
    }

    /** 2. 右對齊直角三角形 */
    public void test9902() {
        System.out.println("\n=== 2. 右對齊 ===");
        for (int i = 1; i <= 9; i++) {
            // 輸出前導空格:每行 (9-i) 組,每組佔 8 字元寬
            for (int k = 1; k <= 9 - i; k++) {
                System.out.print("        ");  // 8 空格對齊
            }
            for (int j = 1; j <= i; j++) {
                System.out.printf("%d×%d=%-2d  ", j, i, i * j);
            }
            System.out.println();
        }
    }

    /** 3. 等腰三角形(置中) */
    public void test9903() {
        System.out.println("\n=== 3. 等腰三角形 ===");
        for (int i = 1; i <= 9; i++) {
            // 左側填充:(9-i) * 4 空格(半個單元寬度)
            for (int k = 1; k <= 9 - i; k++) {
                System.out.print("    ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.printf("%d×%d=%-2d  ", j, i, i * j);
            }
            System.out.println();
        }
    }

    /** 4. 倒三角形(從 9 遞減到 1) */
    public void test9904() {
        System.out.println("\n=== 4. 倒三角形 ===");
        for (int i = 9; i >= 1; i--) {          // 行:9 遞減到 1
            for (int j = 1; j <= i; j++) {      // 列:1 到 i
                System.out.printf("%d×%d=%-2d  ", j, i, i * j);
            }
            System.out.println();
        }
    }

    /** 5. 完整 9×9 方陣(含對稱下半部) */
    public void test9905() {
        System.out.println("\n=== 5. 完整方陣 ===");
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                System.out.printf("%d×%d=%-2d  ", j, i, i * j);
            }
            System.out.println();
        }
    }
}

Test99.java - 主程式入口

public class Test99 {
    public static void main(String[] args) {
        Print99 printer = new Print99();
        printer.test9901();  // 標準左對齊
        printer.test9902();  // 右對齊
        printer.test9903();  // 等腰三角形
        printer.test9904();  // 倒三角形
        printer.test9905();  // 完整方陣
    }
}

執行結果預覽

1. 標準左對齊

1×1=1   
1×2=2   2×2=4   
1×3=3   2×3=6   3×3=9   
...
1×9=9   2×9=18  ...  9×9=81

2. 右對齊

                                    1×1=1   
                                1×2=2   2×2=4   
                            1×3=3   2×3=6   3×3=9   
...
1×9=9   2×9=18  ...  9×9=81

3. 等腰三角形

                1×1=1   
            1×2=2   2×2=4   
        1×3=3   2×3=6   3×3=9   
...
1×9=9   2×9=18  ...  9×9=81

關鍵技術點總結

技巧應用說明
printf 格式化對齊輸出%-2d 左對齊佔 2 位,配合固定寬度空格實現對齊
外層迴圈方向正序/倒序i=1; i<=9; i++ vs i=9; i>=1; i--
內層迴圈上界三角形/方陣j<=i 產生三角,j<=9 產生方陣
前導空格迴圈右對齊/置中根據行號計算填充數量

進階擴展練習

  1. 輸出 HTML 表格:將 printf 替換為 <td> 標籤,生成網頁版乘法表。
  2. 參數化大小:將 9 改為參數 n,支援任意 N×N 乘法表。
  3. 異步輸出:使用 StringBuilder 累積每行,最後一次性列印,減少 I/O 呼叫。
  4. 彩色終端機輸出:搭配 ANSI 轉義碼(\033[31m 紅色等)高亮顯示特定倍數。

常見錯誤與除錯

  • 迴圈邊界錯誤:j < i 會少最後一欄,應為 j <= i。
  • 格式化寬度不足:雙位數乘積(如 9×9=81)需至少 3-4 字元寬,否則對齊錯亂。
  • 忘記換行:外層迴圈結束必須 System.out.println()。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved