[Java] 1 3 5 7 7 5 3 1 별 찍기

Haeun Noh·2022년 10월 2일
0

JAVA_예제

목록 보기
21/23
post-thumbnail

1002


중첩 for문을 이용하여 다음과 같은 결과가 나오도록 별찍기를 수행하시오.

*
* * *
* * * * *
* * * * * * *
* * * * * * *
* * * * *
* * *
*

소스 코드

public class Si {
	public static void main(String args[]) {
		
		for ( int i = 1; i <= 4; i++ ) {
			for  ( int j = 1; j <= (i*2)-1; j++ ) {
				System.out.print("* ");
			}
			System.out.println();
		}
			
		for (int i = 0; i <= 3; i++ ) {
			for (int j = 7-(i*2); j >= 1; j--) {
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}

소스 풀이

위쪽 중첩 for문은 아래의 부분을,

*
* * *
* * * * *
* * * * * * *

아래쪽 중첩 for문은 아래의 부분을 출력하도록 하였다.

* * * * * * *
* * * * *
* * *
*

		for ( int i = 1; i <= 4; i++ ) {
			for  ( int j = 1; j <= (i*2)-1; j++ ) {
				System.out.print("* ");
			}
			System.out.println();
		}

4줄이 출력되도록 i1부터 4까지 for문이 반복되도록 설정한다.

출력될 별의 개수를 1부터 2씩 증가하도록 (i*2)-1로 별이 1357개로 출력되도록 한다.

한 줄 출력을 끝낼 때마다 줄바꿈을 한다.


		for (int i = 0; i <= 3; i++ ) {
			for (int j = 7-(i*2); j >= 1; j--) {
				System.out.print("* ");
			}
			System.out.println();
		}

4줄이 출력도도록 i0부터 3까지 for문이 반복되도록 설정한다.
여기서 i의 초깃값을 0으로 준 이유는 아래에서 나올 것이다.

출력될 별의 갯수인 j7부터 for문이 새로 반복될 때마다 2씩 감소 되어야 한다. 따라서 처음에는 7-0을 해야 j의 값, 즉 출력될 별의 갯수가 7개가 되므로 곱해져서 0이 나오도록 i의 초깃값을 0으로 설정한 것이다.
이렇게 별이 7531개로 출력된다.

한 줄 출력을 끝낼 때마다 줄바꿈을 한다.



profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글