Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 피라미드 별 패턴 출력하기: 중첩 for 반복문 활용 예제


개요

이 글에서는 자바(Java)를 이용해 피라미드 모양의 별(*) 패턴을 콘솔에 출력하는 방법을 알아봅니다. 피라미드 패턴은 여러 개의 for 반복문과 출력문을 조합하면 손쉽게 만들 수 있으며, 중첩 루프의 동작 원리를 익히기에 가장 좋은 기본 예제 중 하나입니다.

실행 결과 미리 보기

입력

예를 들어 행의 개수로 8을 입력했다고 가정해 보겠습니다.

행의 개수 입력 : 8

출력

그러면 아래와 같이 아래로 갈수록 별이 한 개씩 늘어나는 피라미드 패턴이 출력됩니다.

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

알고리즘

피라미드 별 패턴을 출력하는 전체 절차는 다음과 같습니다.

  1. 시작 — 프로그램을 시작합니다.
  2. 정수형 변수 i, j, my_input을 선언합니다.
  3. 사용자로부터 행의 개수를 입력받거나, 코드 안에 값을 미리 정의합니다.
  4. 두 개의 중첩 for 반복문을 사용해 별 앞에 들어갈 공백을 처리합니다.
  5. 공백 출력이 끝나면 또 다른 for 반복문으로 별(*) 문자를 출력합니다.
  6. 줄바꿈을 출력해 다음 행이 새로운 줄에서 시작되도록 합니다.
  7. 결과를 화면에 표시합니다.
  8. 종료 — 프로그램을 마무리합니다.

핵심 로직 설명

  • 바깥쪽 루프(i): 전체 행의 개수를 결정합니다. i가 0부터 my_input - 1까지 증가하며 각 행을 순서대로 처리합니다.
  • 첫 번째 안쪽 루프(j): 현재 행에서 필요한 만큼 공백을 출력해 왼쪽 여백을 만들고, 이를 통해 피라미드의 대칭 모양을 완성합니다.
  • 두 번째 안쪽 루프(j): 현재 행 번호보다 하나 많은 개수의 별(*)과 공백을 출력합니다.
  • 줄바꿈 처리: 한 행의 출력이 끝날 때마다 println()으로 커서를 다음 줄로 이동시킵니다.

예제 1: 사용자 입력으로 행 개수 받기

이 예제에서는 Scanner 클래스를 사용해 사용자로부터 행의 개수를 직접 입력받은 뒤, 해당 크기의 피라미드 패턴을 출력합니다.

import java.util.Scanner;
public class Pyramid{
   public static void main(String args[]){
      int i, j, my_input;
      System.out.println("필요한 패키지가 모두 임포트되었습니다.");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("Scanner 객체가 생성되었습니다.");
      System.out.print("행의 개수를 입력하세요 : ");
      my_input = my_scanner.nextInt();
      System.out.println("피라미드 별 패턴 : ");
      for (i = 0; i < my_input; i++){
         for (j = my_input - i; j > 1; j--){
            System.out.print(" ");
         }
         for (j = 0; j <= i; j++){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

출력 결과

필요한 패키지가 모두 임포트되었습니다.
Scanner 객체가 생성되었습니다.
행의 개수를 입력하세요 : 8
피라미드 별 패턴 :
       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *

예제 2: 값이 미리 정의된 경우

이번에는 행의 개수를 코드 안에서 미리 정의하고 그 값을 그대로 사용해 패턴을 출력합니다. 입력 과정 없이 로직만 빠르게 확인하고 싶을 때 유용한 방식입니다.

public class Pyramid{
   public static void main(String args[]){
      int i, j, my_input;
      my_input = 8;
      System.out.println("행의 개수는 " + my_input + "(으)로 정의되어 있습니다.");
      System.out.println("피라미드 별 패턴 : ");
      for (i = 0; i < my_input; i++){
         for (j = my_input - i; j > 1; j--){
            System.out.print(" ");
         }
         for (j = 0; j <= i; j++){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

출력 결과

행의 개수는 8(으)로 정의되어 있습니다.
피라미드 별 패턴 :
       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *

마무리

이처럼 중첩 반복문만 제대로 활용하면 별도의 라이브러리 없이도 다양한 형태의 별 패턴을 출력할 수 있습니다. 공백과 별의 개수 규칙을 이해하고 나면 역삼각형, 다이아몬드, 모래시계 패턴 등으로도 손쉽게 확장할 수 있으니, 위 코드를 직접 변형해 연습해 보시기 바랍니다.