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

Java 新手打印等腰三角形:少打一個空格導致靠左對齊

     編輯:程式設計綜合問答

問題代碼

for (int j = 1; j <= 5 - i; j++) {
    System.out.print(""); // 這裡應該是空格 " "
}

錯誤原因

System.out.print("") 輸出**空字符串**,不佔寬度,導致每行前導空白缺失,三角形左邊緣靠左,不再居中。

修正

System.out.print(" "); // 雙引號內打一個空格

完整正確代碼

public class IsoscelesTriangle {
    public static void main(String[] args) {
        int rows = 5;
        for (int i = 1; i <= rows; i++) {
            // 打印前導空格
            for (int j = 1; j <= rows - i; j++) {
                System.out.print(" ");
            }
            // 打印星號
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println(); // 換行
        }
    }
}

輸出效果

    *
   ***
  *****
 *******
*********

舉一反三

  • 打印菱形:上半部同等腰三角形,下半部倒序。
  • 打印空心三角形:內層判斷是否為邊緣(首/尾/最後一行)決定打印 * 或空格。
  • 用 String.repeat(n) (Java 11+) 簡化:System.out.print(" ".repeat(rows-i) + "*".repeat(2*i-1));

總結

一個空格的缺失,改變了整個圖形結構。**字符串字面量 "" 與 " " 天壤之別**,調試輸出格式時,可用 System.out.print("[" + str + "]") 可視化邊界。

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