이 글에서는 자바(Java)를 사용해 정사각형 별(*) 패턴을 출력하는 방법을 소개합니다. 이 패턴은 여러 개의 for 루프와 print 문을 조합하면 누구나 쉽게 만들 수 있으며, 반복문의 동작 원리를 익히기에 좋은 예제입니다.
실행 결과 미리 보기
입력
사용자가 한 변의 길이로 8을 입력했다고 가정해 보겠습니다.
한 변의 길이 입력 : 8
출력
이때 기대되는 출력 결과는 다음과 같습니다.
정사각형 패턴 : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
알고리즘
- 프로그램을 시작합니다.
- i, j, my_input이라는 세 개의 정수 변수를 선언합니다.
- 사용자로부터 필요한 값을 입력받거나, 코드에 값을 직접 정의합니다.
- 두 개의 중첩된 for 루프를 사용해 문자 사이의 공백을 처리합니다.
- 가장 안쪽 루프의 반복이 끝나면, 별(*) 문자를 출력하기 위해 또 다른 for 루프를 실행합니다.
- 줄바꿈을 출력해 각 줄에 지정된 개수의 문자가 배치되도록 합니다.
- 결과를 화면에 표시합니다.
- 프로그램을 종료합니다.
예제 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)를 출력해 다음 행으로 넘어가는 구조입니다.