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

Java 控制台列印幾何圖形大全:三角形、菱形、平行四邊形等經典練習

     編輯:Java 相關知識

初學者常以巢狀迴圈列印圖形練習流程控制邏輯。本文彙整 11 種經典幾何圖形的 Java 完整實作:**長方形、直角三角形(四種變體)、等腰三角形(正/倒)、平行四邊形(兩種)、直角梯形、菱形**,程式碼結構清晰,可直接複製執行觀察輸出規律。

核心程式碼:ShapePrinter

public class ShapePrinter {
    private static final int SIZE = 10;

    public static void main(String[] args) {
        printRectangle();
        printRightTriangleBottomLeft();
        printRightTriangleBottomRight();
        printRightTriangleTopLeft();
        printRightTriangleTopRight();
        printIsoscelesTriangle();
        printInvertedIsoscelesTriangle();
        printParallelogramLeft();
        printParallelogramRight();
        printRightTrapezoid();
        printDiamond();
    }

    // 1. 長方形
    static void printRectangle() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 2. 倒直角三角形(左對齊)
    static void printRightTriangleBottomLeft() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE - i; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 3. 倒直角三角形(右對齊)
    static void printRightTriangleBottomRight() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < i; j++) System.out.print(" ");
            for (int j = 0; j < SIZE - i; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 4. 正直角三角形(左對齊)
    static void printRightTriangleTopLeft() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j <= i; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 5. 正直角三角形(右對齊)
    static void printRightTriangleTopRight() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE - i - 1; j++) System.out.print(" ");
            for (int j = 0; j <= i; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 6. 平行四邊形(左傾)
    static void printParallelogramLeft() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < i; j++) System.out.print(" ");
            for (int j = 0; j < SIZE; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 7. 平行四邊形(右傾)
    static void printParallelogramRight() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE - i; j++) System.out.print(" ");
            for (int j = 0; j < SIZE; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 8. 直角梯形
    static void printRightTrapezoid() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) System.out.print("*");
            for (int j = 0; j < i; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 9. 等腰三角形(正)
    static void printIsoscelesTriangle() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE - i; j++) System.out.print(" ");
            for (int j = 0; j < 2 * i + 1; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 10. 等腰三角形(倒)
    static void printInvertedIsoscelesTriangle() {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < i; j++) System.out.print(" ");
            for (int j = 0; j < 2 * (SIZE - i) - 1; j++) System.out.print("*");
            System.out.println();
        }
        blankLine();
    }

    // 11. 菱形(正 + 倒等腰三角形組合)
    static void printDiamond() {
        // 上半部
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE - i; j++) System.out.print(" ");
            for (int j = 0; j < 2 * i + 1; j++) System.out.print("*");
            System.out.println();
        }
        // 下半部
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < i; j++) System.out.print(" ");
            for (int j = 0; j < 2 * (SIZE - i) - 1; j++) System.out.print("*");
            System.out.println();
        }
    }

    static void blankLine() { System.out.println(); }
}

關鍵規律總結

圖形外層迴圈內層邏輯關鍵
直角三角形行數 i列數與 i 線性相關(i, SIZE-i)
等腰三角形行數 i空格 = SIZE-i,星號 = 2*i+1
平行四邊形行數 i前導空格遞增/遞減,星號固定 SIZE
菱形兩段迴圈上半部正等腰,下半部倒等腰

進階練習建議

  • 將 SIZE 改為命令列參數或 Scanner 輸入。
  • 嘗試列印空心圖形(僅邊框)。
  • 使用 StringBuilder 累積每行再輸出,減少 I/O 呼叫。
  • 將邏輯抽象為 printLine(int spaces, int stars) 復用。

透過這些經典圖形練習,能扎實掌握巢狀迴圈、索引運算與輸出控制,為演算法思維打下基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved