본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 05. 입력받은 행 개수에 따라 별 출력하기

by 제이투더문 2024. 6. 22.

 

 안녕하세요, 작가 J입니다. 오늘은 초보자도 쉽게 이해할 수 있는 Java로 별을 출력하는 프로그램을 만들어 보겠습니다. 입력받은 행 개수에 따라 별을 출력하는 이 문제는 자바 기초 문법을 익히기에 아주 좋은 예제입니다. 함께 차근차근 살펴보도록 하겠습니다.

 

[Java Festival 05] 입력받은 행 개수에 따라 별 출력하기

행 개수를 입력 받아 다음과 같이 삼각형을 출력하시오.

 

 

 

문제 설명

 사용자로부터 행 개수를 입력받아, 해당 행 개수만큼 별을 출력하는 프로그램을 작성합니다. 각 행의 별 개수는 행 번호와 같습니다.

 우리가 예전에 실습했던 별찍기의 응용 버전입니다. 그때는 5행만 가지고 있는 별을 출력했다면, 이번에는 사용자로부터 입력받은 행 개수만큼 별을 출력하는 예제입니다.

 

코드 풀이

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
        System.out.print("행 개수 : ");
        int row = sc.nextInt();
        
        for (int i = 0; i < row; i++) { // 행 개수만큼 반복
			for (int j = 0; j <= i; j++) { // 각 행에 출력할 별의 개수만큼 반복
				System.out.print("*");
			}
			System.out.println(); // 한 행이 끝나면 줄바꿈
		}
	}
}

 

 예전에 진행했던 별찍기와 코드의 진행은 비슷합니다. 다만 어디까지 반복할 것인지 for 문의 조건에 row가 들어가는 점이 다릅니다. while 문을 사용하는 방법도 있겠지만, 이 방법이 가장 간단하다고 생각합니다.

 

 표는 i, j의 좌표값을 나타냅니다. 3개를 찍는 기준으로 표를 그려보겠습니다. 이러한 예제는 큰 숫자를 입력해서 복잡하게 보는 것보다 3, 4와 같이 작은 줄부터 시작하는 게 이해하기 쉽습니다.

 

*(0, 0) (0, 1) (0, 2)
*(1, 0) *(1, 1) (1, 2)
*(2, 0) *(2, 1) *(2, 2)

 

 위 표를 보면 첫 번째 for 문과 두 번째 for 문을 돌고 별을 찍는 걸 볼 수 있습니다. 그리고 두 번째 for 문에 j <= i 조건이 있어서, j가 i보다 작거나 같을 때까지만 반복합니다. 그리고 별을 찍은 뒤에는 아래 줄로 가야 하기 때문에 println을 써서 라인을 바꿔줍니다.

 

 반복문을 사용할 때, 각 반복의 흐름을 이해하는 것이 중요합니다. 위 코드에서는 두 개의 반복문을 사용하여 각 행과 열을 제어합니다. 외부 반복문은 행을 제어하고, 내부 반복문은 각 행에서 출력할 별의 개수를 제어합니다. 이를 통해 사용자로부터 입력받은 행 개수에 맞춰 별을 출력할 수 있습니다.

 

마무리

 이 프로그램은 초보자가 자바의 기초 문법을 익히기에 매우 좋은 예제입니다. for 문을 사용하여 반복문을 이해하고, 조건에 따라 출력되는 결과를 직접 확인할 수 있습니다. 이 코드를 통해 반복문의 기본 개념을 확실히 익히길 바랍니다. 

 앞으로도 많은 예제를 더욱 쉽게 풀이 하도록 노력해 보겠습니다. 감사합니다!