Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java พิมพ์รูปดาวสี่เหลี่ยมจัตุรัส (Square Star Pattern)

การพิมพ์รูปแบบดาวสี่เหลี่ยมจัตุรัส (Square Star Pattern) ใน Java

รูปสี่เหลี่ยมจัตุรัสประกอบด้วยแถวและคอลัมน์เท่ากัน ทุกตำแหน่งเป็นดาว ใช้ Nested Loops แบบง่ายที่สุด

อัลกอริทึม

  1. รับความยาวด้าน n
  2. ลูปแถว i = 1 ถึง n
  3. ลูปคอลัมน์ j = 1 ถึง n
  4. พิมพ์ดาวทุกตำแหน่ง
  5. ขึ้นบรรทัดใหม่หลังแต่ละแถว

ตัวอย่างที่ 1: รับค่าจากผู้ใช้ (Scanner)

import java.util.Scanner;

public class SquareStarPattern {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("ป้อนความยาวด้าน: ");
        int n = scanner.nextInt();
        
        System.out.println("รูปแบบสี่เหลี่ยมจัตุรัส:");
        
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

ตัวอย่างที่ 2: ค่าคงที่ (Hardcoded)

public class SquareStarPattern {
    public static void main(String[] args) {
        int n = 8;
        System.out.println("ความยาวด้าน: " + n);
        System.out.println("รูปแบบสี่เหลี่ยมจัตุรัส:");
        
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

ผลลัพธ์ (n=5)

รูปแบบสี่เหลี่ยมจัตุรัส:
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * *

การปรับปรุง: ใช้ StringBuilder และ String.repeat() (Java 11+)

public class SquareStarModern {
    public static void main(String[] args) {
        int n = 8;
        StringBuilder sb = new StringBuilder();
        String row = "* ".repeat(n) + "\n";
        
        for (int i = 0; i < n; i++) {
            sb.append(row);
        }
        
        System.out.print(sb.toString());
    }
}

รูปแบบแปรผัน: Hollow Square (สี่เหลี่ยมว่าง)

public class HollowSquare {
    public static void main(String[] args) {
        int n = 6;
        
        for (int i = 1; i <= n; i++) {
            if (i == 1 || i == n) {
                System.out.println("*".repeat(n));
            } else {
                System.out.println("*" + " ".repeat(n - 2) + "*");
            }
        }
    }
}

ผลลัพธ์ Hollow Square (n=6)

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

รูปแบบแปรผัน: Square with Numbers

public class NumberSquare {
    public static void main(String[] args) {
        int n = 5;
        
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                System.out.print(j + " ");
            }
            System.out.println();
        }
    }
}

ผลลัพธ์ Number Square (n=5)

1 2 3 4 5 
1 2 3 4 5 
1 2 3 4 5 
1 2 3 4 5 
1 2 3 4 5

การวิเคราะห์

  • Time: O(n²)
  • Space: O(1) เพิ่มเติม
  • รูปแบบง่ายที่สุด สำหรับฝึก Nested Loops พื้นฐาน
  • ใช้ String.repeat() ทำให้โค้ดกระชับมาก (Java 11+)