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

Java 循環打印各類三角形圖案完整教學

     編輯:Java 綜合教學

基礎:矩形與直角三角形

巢狀迴圈是打印圖案的核心。外層控制行數,內層控制每行內容。

1. 固定寬度矩形

public static void printRectangle(int rows, int cols) {
    for (int r = 0; r < rows; r++) {
        for (int c = 0; c < cols; c++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

2. 左對齊直角三角形

第 i 行印 i 顆星號:

public static void printLeftTriangle(int n) {
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < i; j++) System.out.print("*");
        System.out.println();
    }
}

3. 右對齊直角三角形(右斜)

每行先印空格再印星號,空格數 = 總行數 - 當前行數:

public static void printRightTriangle(int n) {
    for (int i = 1; i <= n; i++) {
        for (int s = 0; s < n - i; s++) System.out.print(" ");
        for (int j = 0; j < i; j++) System.out.print("*");
        System.out.println();
    }
}

4. 左斜直角三角形

空格數隨行數遞增:

public static void printLeftSlantTriangle(int n) {
    for (int i = 1; i <= n; i++) {
        for (int s = 0; s < i - 1; s++) System.out.print(" ");
        System.out.println("*");
    }
}

進階:等腰三角形與菱形

5. 等腰三角形

每行:前導空格 + 星號。第 i 行(1-based):空格 n-i,星號 2*i-1。

public static void printIsoscelesTriangle(int n) {
    for (int i = 1; i <= n; i++) {
        for (int s = 0; s < n - i; s++) System.out.print(" ");
        for (int j = 0; j < 2 * i - 1; j++) System.out.print("*");
        System.out.println();
    }
}

6. 倒等腰三角形

行數遞減,星號遞減:

public static void printInvertedIsosceles(int n) {
    for (int i = n; i >= 1; i--) {
        for (int s = 0; s < n - i; s++) System.out.print(" ");
        for (int j = 0; j < 2 * i - 1; j++) System.out.print("*");
        System.out.println();
    }
}

7. 菱形(上下兩個等腰三角形組合)

public static void printDiamond(int n) {
    // 上半部
    for (int i = 1; i <= n; i++) {
        for (int s = 0; s < n - i; s++) System.out.print(" ");
        for (int j = 0; j < 2 * i - 1; j++) System.out.print("*");
        System.out.println();
    }
    // 下半部
    for (int i = n - 1; i >= 1; i--) {
        for (int s = 0; s < n - i; s++) System.out.print(" ");
        for (int j = 0; j < 2 * i - 1; j++) System.out.print("*");
        System.out.println();
    }
}

通用打印框架

將邏輯抽象為「每行空格數、星號數」的函式,可輕鬆擴展各種圖案:

public static void printPattern(int rows, 
    java.util.function.IntFunction spaces,
    java.util.function.IntFunction stars) {
    for (int i = 1; i <= rows; i++) {
        for (int s = 0; s < spaces.apply(i); s++) System.out.print(" ");
        for (int j = 0; j < stars.apply(i); j++) System.out.print("*");
        System.out.println();
    }
}

// 使用範例:等腰三角形
printPattern(5, i -> 5 - i, i -> 2 * i - 1);

練習建議

  1. 先在紙上畫出前 5 行的空格/星號數規律
  2. 找出行號與數量的數學關係式
  3. 用 for 迴圈實驗,觀察輸出調整邊界條件
  4. 嘗試用遞迴或 Stream API 重寫

掌握巢狀迴圈控制輸出,是邏輯思維訓練的絕佳切入點。

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