교육과정 기록/☕ 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 로 작성해 별을 두 개씩 늘렸다.
결과
출력하면 이렇게 나온다.
별 세개짜리는 저렇게 합쳐져서 어정쩡한 피라미드가 되어버렸다...?