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

자바(Java)로 정사각형 별 패턴 출력하는 프로그램 만들기

이 글에서는 자바(Java)를 사용해 정사각형 별(*) 패턴을 출력하는 방법을 소개합니다. 이 패턴은 여러 개의 for 루프와 print 문을 조합하면 누구나 쉽게 만들 수 있으며, 반복문의 동작 원리를 익히기에 좋은 예제입니다.

실행 결과 미리 보기

입력

사용자가 한 변의 길이로 8을 입력했다고 가정해 보겠습니다.

한 변의 길이 입력 : 8

출력

이때 기대되는 출력 결과는 다음과 같습니다.

정사각형 패턴 :
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

알고리즘

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

예제 1: 사용자 입력으로 패턴 출력하기

아래 예제에서는 Scanner 클래스를 사용해 사용자가 직접 한 변의 길이를 입력할 수 있습니다. 입력값에 따라 그 크기만큼의 정사각형 패턴이 콘솔에 출력됩니다.

import java.util.Scanner;
public class SquarePattern{
   public static void main(String args[]){
      int i, j, my_input;
      System.out.println("필요한 패키지를 가져왔습니다");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("입력을 위한 reader 객체가 정의되었습니다");
      System.out.print("한 변의 길이를 입력하세요 : ");
      my_input = my_scanner.nextInt();
      System.out.println("정사각형 패턴 :");
      for(i = 1; i <= my_input; i++){
         for(j = 1; j <= my_input; j++){
            System.out.print("* ");
         }
         System.out.print("\n");
      }
   }
}

출력

필요한 패키지를 가져왔습니다
입력을 위한 reader 객체가 정의되었습니다
한 변의 길이를 입력하세요 : 8
정사각형 패턴 :
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

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

두 번째 예제에서는 정수 값이 코드 안에 미리 정의되어 있으며, 이 값을 읽어 콘솔에 바로 출력합니다. 사용자 입력 없이 결과를 빠르게 확인하고 싶을 때 유용한 방식입니다.

public class SquarePattern{
   public static void main(String args[]){
      int i, j, my_input;
      my_input = 8;
      System.out.println("한 변의 길이는 " +my_input+ "으로 정의되었습니다");
      System.out.println("정사각형 패턴 :");
      for(i = 1; i <= my_input; i++){
         for(j = 1; j <= my_input; j++){
            System.out.print("* ");
         }
         System.out.print("\n");
      }
   }
}

출력

한 변의 길이는 8으로 정의되었습니다
정사각형 패턴 :
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

코드 작동 원리

이 프로그램의 핵심은 중첩 for 루프(nested loop)입니다. 바깥쪽 루프 변수 i는 행(row)의 개수를, 안쪽 루프 변수 j는 각 행에 출력할 별의 개수를 담당합니다. 두 루프 모두 my_input번씩 반복되기 때문에 가로와 세로 길이가 같은 정사각형 형태의 별 패턴이 완성됩니다. 안쪽 루프가 한 차례 끝날 때마다 줄바꿈 문자(\n)를 출력해 다음 행으로 넘어가는 구조입니다.