교육과정 기록/☕ Java

for문을 이용해 별찍기 [별피라미드]

춘식이왔엉 2022. 4. 11. 14:05

여러 예제 문제들을 풀어보면서, 유독 for문이 많이 헷갈려 별찍기 연습을 해보았다.

 

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

  -> 요걸 출력해보자! 

 

 

1. 먼저, 맨 윗줄의 별 하나를 찍는 코드를 작성해보았다.

맨 윗줄의 별 하나는 공백 4칸 + 별 1개로 이루어져 있다.

따라서 공백을 출력하는 for문과, 별을 출력하는 for문을 분리해서 작성하였다.

그리고 별을 출력한 후에 System.out.print("\n")을 통해 다음 행으로 넘어간다. 

(--> System.out.println(); 과 같다. )

 

 

2. 별(+공백)을 찍는 것을 5번 반복해야 하므로,

바깥에 for문을 하나 더 만들어 중첩 for문으로 만들었다. 

* 바깥 for문 : 별+공백 한줄을 출력하는 것을 5번 반복하는 것을 의미한다.

 

* 안쪽 for문1 - 공백 : 맨 윗줄은 4 -> 그다음은 3 -> 2 -> 1 -> 0 으로 줄어들기 때문에,

  조건식을 j<4-i 로 작성해 공백을 하나씩 줄였다.

 

* 안쪽 for문2 - :  1 -> 3 -> 5 -> 7 -> 9 로 늘어나기 때문에,

  조건식을 j<(2*i)+1 로 작성해 별을 두 개씩 늘렸다.

 

 

결과

출력하면 이렇게 나온다.

별 세개짜리는 저렇게 합쳐져서 어정쩡한 피라미드가 되어버렸다...?