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

자바(Java)로 하프 다이아몬드 별(*) 패턴 출력하기

이 글에서는 자바(Java)를 사용하여 하프 다이아몬드(half diamond) 별 패턴을 출력하는 방법을 알아보겠습니다. 이 패턴은 여러 개의 for 반복문print 문을 조합하여 만들 수 있으며, 반복문의 기본 원리를 익히기에 좋은 대표적인 연습 문제입니다.

실행 결과 미리 보기

사용자가 행(row)의 개수를 입력하면, 위쪽으로는 점점 길어지고 아래쪽으로는 점점 짧아지는 형태의 하프 다이아몬드 패턴이 콘솔에 출력됩니다.

입력 예시

행의 개수를 입력하세요 : 8

출력 결과

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

알고리즘 동작 순서

패턴이 만들어지는 과정은 다음과 같습니다.

  1. 시작 — 프로그램을 실행합니다.
  2. 변수 선언 — 정수형 변수 i, j, my_input을 선언합니다.
  3. 값 입력 — 사용자로부터 행의 개수를 입력받거나, 코드 내에 값을 직접 정의합니다.
  4. 증가 부분 출력 — 첫 번째 중첩 for 루프를 돌며 한 줄에 별(*)을 하나씩 늘려가며 출력합니다.
  5. 감소 부분 출력 — 두 번째 for 루프를 돌며 별의 개수를 하나씩 줄여가며 나머지 절반을 출력합니다.
  6. 줄 바꿈 처리 — 각 행이 끝날 때마다 줄 바꿈 문자(\n)를 출력해 패턴의 형태를 유지합니다.
  7. 결과 표시 — 완성된 패턴을 콘솔에 출력합니다.
  8. 종료 — 프로그램을 마칩니다.

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

아래 예제는 Scanner 클래스를 사용해 사용자로부터 행의 개수를 직접 입력받아 패턴을 출력합니다.

import java.util.Scanner;
public class HalfDiamond {
   public static void main(String[] args) {
      int i, j, my_input;
      System.out.println("필요한 패키지(java.util.Scanner)가 임포트되었습니다.");
      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 = 0; j < i + 1; j++)
            System.out.print("*");
         System.out.print("\n");
      }
      // 감소하는 부분 (아래쪽 절반)
      for (i = 1; i < my_input; i++) {
         for (j = i; j < my_input; j++)
            System.out.print("*");
         System.out.print("\n");
      }
   }
}

실행 결과

필요한 패키지(java.util.Scanner)가 임포트되었습니다.
Scanner 객체가 생성되었습니다.
행의 개수를 입력하세요 : 8
하프 다이아몬드 패턴 :
*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*

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

다음 예제는 사용자 입력 없이 행의 개수를 코드 안에 직접 정의한 뒤, 그 값을 기준으로 패턴을 출력합니다.

public class HalfDiamond {
   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 = 0; j < i + 1; j++)
            System.out.print("*");
         System.out.print("\n");
      }
      // 감소하는 부분 (아래쪽 절반)
      for (i = 1; i < my_input; i++) {
         for (j = i; j < my_input; j++)
            System.out.print("*");
         System.out.print("\n");
      }
   }
}

실행 결과

행의 개수는 8(으)로 정의되었습니다.
하프 다이아몬드 패턴 :
*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*

코드 핵심 포인트 정리

  • 위쪽 절반: 외부 루프 변수 i가 0부터 my_input - 1까지 증가하면서, 각 행마다 i + 1개의 별을 출력합니다.
  • 아래쪽 절반: i가 1부터 시작해 my_input - 1까지 증가하면서, 각 행마다 my_input - i개의 별을 출력해 점점 줄어드는 형태를 만듭니다.
  • 줄 바꿈: 내부 루프가 끝난 후 System.out.print("\n")을 호출해 다음 행으로 넘어갑니다.

이처럼 두 개의 for 루프만 활용하면 하프 다이아몬드 패턴을 손쉽게 구현할 수 있습니다. 반복문의 범위와 출력 규칙만 이해하면, 피라미드·역삼각형 등 다양한 별 패턴에도 같은 방식을 응용할 수 있습니다.