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

자바(Java)로 미러 상단 별 삼각형 패턴 출력하는 방법

이 글에서는 자바(Java)를 사용해 미러 상단 별 삼각형 패턴(mirror upper star triangle pattern)을 출력하는 방법을 소개합니다. 이 패턴은 여러 개의 for 반복문과 출력문을 조합하면 손쉽게 만들 수 있으며, 첫 줄에는 별이 가득 차 있고 아래로 내려갈수록 왼쪽 공백이 하나씩 늘어나면서 별의 개수가 줄어드는 계단식 모양이 됩니다.

다음은 실행 결과 예시입니다.

입력

사용자가 행의 개수로 8을 입력했다고 가정해 보겠습니다.

행의 개수 입력 : 8

출력

원하는 출력 결과는 다음과 같습니다.

미러 위쪽 별 패턴 :
********
 *******
  ******
   *****
    ****
     ***
      **
       *

알고리즘

  1. 프로그램을 시작합니다.
  2. 정수형 변수 i, j, k, my_input 네 개를 선언합니다.
  3. 사용자로부터 필요한 값을 입력받거나 값을 직접 정의합니다.
  4. 문자 사이의 공백을 만들기 위해 외부 for 반복문 안에서 두 개의 중첩 for 반복문을 실행합니다.
  5. 가장 안쪽 반복문이 끝나면 또 다른 for 반복문을 실행해 필요한 문자(*)를 출력합니다.
  6. 줄바꿈을 출력해 다음 줄에는 지정된 개수만큼의 문자가 표시되도록 합니다.
  7. 결과를 화면에 표시합니다.
  8. 프로그램을 종료합니다.

패턴의 원리

이 패턴은 크게 세 부분으로 나눌 수 있습니다. 바깥쪽 for 반복문은 각 줄을 담당하며, i가 전체 행 개수(my_input)부터 1까지 감소합니다. 첫 번째 내부 반복문은 (my_input − i)개의 공백을 출력해 오른쪽으로 밀린 듯한 모양을 만들고, 두 번째 내부 반복문은 i개의 별(*)을 출력합니다. 마지막으로 println()으로 줄바꿈을 하면 한 줄이 완성됩니다.

예제 1 : 사용자 입력 받기

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

import java.util.Scanner;
public class MirrorTriangle{
   public static void main(String args[]){
      int i, j, k, my_input;
      Scanner my_scanner = new Scanner(System.in);
      System.out.print("행의 개수를 입력하세요 : ");
      my_input = my_scanner.nextInt();
      System.out.println("미러 위쪽 별 패턴:");
      for (i= my_input; i>= 1; i--){
         for (j=my_input; j>i;j--){
            System.out.print(" ");
         }
         for (k=1;k<=i;k++){
            System.out.print("*");
         }
         System.out.println("");
      }
   }
}

출력 결과

행의 개수를 입력하세요 : 8
미러 위쪽 별 패턴:
********
 *******
  ******
   *****
    ****
     ***
      **
       *

예제 2 : 값 미리 정의하기

다음 예제에서는 행의 개수가 코드 안에 미리 정의되어 있으며, 프로그램을 실행하면 해당 값과 함께 패턴이 콘솔에 출력됩니다.

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

출력 결과

행의 개수는 8으로 정의되어 있습니다.
미러 위쪽 별 패턴:
********
 *******
  ******
   *****
    ****
     ***
      **
       *

마무리

지금까지 자바의 중첩 반복문을 활용해 미러 상단 별 삼각형 패턴을 출력하는 두 가지 방법을 살펴보았습니다. 공백과 별의 개수를 조절하는 규칙만 이해하면 피라미드, 다이아몬드 등 다양한 패턴으로도 쉽게 응용할 수 있습니다.