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

자바(Java)로 숫자 '8' 모양 별 패턴 출력하는 프로그램

개요

이 글에서는 자바(Java)를 이용해 숫자 '8' 모양의 별(*) 패턴을 출력하는 방법을 소개합니다. 이 패턴은 여러 개의 for 반복문print 문을 조합해 만들 수 있으며, 반복문과 조건문의 동작 원리를 익히기에 좋은 예제입니다.

아래는 실제 실행 결과의 예시입니다.

입력 예시

숫자를 입력하세요 : 8

출력 결과

8 패턴 :
******
*    *
*    *
*    *
*    *
*    *
*    *
******
*    *
*    *
*    *
*    *
*    *
*    *
******

알고리즘

패턴 출력 로직은 다음 단계로 구성됩니다.

  1. 시작 — 프로그램을 실행합니다.
  2. 정수형 변수 i, j, k와 my_input을 선언합니다.
  3. 사용자로부터 필요한 값을 입력받거나, 값을 직접 정의합니다.
  4. k에 'my_input × 2 − 1'을 할당해 전체 행(row)의 개수를 계산합니다.
  5. 중첩 for 루프를 순회하며 각 위치에 출력할 문자를 결정합니다.
  6. 현재 행이 첫 번째 행, 중간 행(my_input), 마지막 행(k)이라면 가로줄(*)을 출력하고, 그렇지 않으면 양쪽 끝에만 *를 찍습니다.
  7. 한 행의 출력이 끝날 때마다 줄바꿈을 수행해 다음 줄로 넘어갑니다.
  8. 결과를 화면에 표시합니다.
  9. 종료

예제 1 — 사용자 입력값으로 출력하기

첫 번째 예제는 Scanner 클래스로 사용자에게 숫자를 직접 입력받은 뒤, 해당 크기의 패턴을 출력합니다.

import java.util.Scanner;
public class EightPattern {
   public static void main(String[] args) {
      int my_input, k, i, j;
      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("8 패턴 : ");
      k = my_input * 2 - 1;
      for (i = 1; i <= k; i++) {
         if (i == 1 || i == my_input || i == k)
            for (j = 1; j <= my_input; j++) {
               if (j == 1 || j == my_input)
                  System.out.print(" ");
               else
                  System.out.print("*");
            }
         else
            for (j = 1; j <= my_input; j++) {
               if (j == 1 || j == my_input)
                  System.out.print("*");
               else
                  System.out.print(" ");
            }
         System.out.println();
      }
   }
}

실행 결과

필요한 패키지가 임포트되었습니다
Scanner 객체가 생성되었습니다
숫자를 입력하세요 : 8
8 패턴 :
******
*    *
*    *
*    *
*    *
*    *
*    *
******
*    *
*    *
*    *
*    *
*    *
*    *
******

예제 2 — 고정된 값으로 출력하기

두 번째 예제는 값을 코드에 미리 정의해 두고 그대로 사용해 패턴을 출력합니다. 입력 절차 없이 결과만 빠르게 확인할 때 유용합니다.

public class EightPattern {
   public static void main(String[] args) {
      int my_input, k, i, j;
      my_input = 8;
      System.out.println("크기가 " + my_input + "으로 지정되었습니다");
      System.out.println("8 패턴 : ");
      k = my_input * 2 - 1;
      for (i = 1; i <= k; i++) {
         if (i == 1 || i == my_input || i == k)
            for (j = 1; j <= my_input; j++) {
               if (j == 1 || j == my_input)
                  System.out.print(" ");
               else
                  System.out.print("*");
            }
         else
            for (j = 1; j <= my_input; j++) {
               if (j == 1 || j == my_input)
                  System.out.print("*");
               else
                  System.out.print(" ");
            }
         System.out.println();
      }
   }
}

실행 결과

크기가 8으로 지정되었습니다
8 패턴 :
******
*    *
*    *
*    *
*    *
*    *
*    *
******
*    *
*    *
*    *
*    *
*    *
*    *
******

마무리

조건문과 중첩 반복문을 적절히 조합하면 숫자 8 형태의 별 패턴을 손쉽게 출력할 수 있습니다. my_input 값만 바꾸면 원하는 크기의 패턴을 자유롭게 만들 수 있으니, 다양한 크기로 직접 테스트해 보시길 권장합니다.