별찍기 예제는 반복문을 연습하는데 좋은 예제입니다.
반복문을 사용하여 위 그림처럼 별문자를 출력하려면 어떻게 코딩해야 할까요? 이 글에서는 우선 위 그림처럼 별찍는 방법을 설명한 후, 다른 모양으로 별찍는 방법을 연습문제로 드리겠습니다.
그림을 살펴보면, 첫째줄에는 별이 1개, 둘째줄에는 별이 2개.. 이런식으로 다섯번째 줄에는 별이 5개로 되어 있습니다. 출력을 5번 반복한다는 것을 알 수 있죠.
for(var i=0; i<5; i++){ var string = ""; //줄당 별의 갯수를 조절하는 부분 //... console.log(string); }
우선 이렇게 만들면 5줄을 출력하는 코드를 만들 수 있습니다. 다음으로 각각 줄의 별의 갯수를 조절해 주어야 합니다.
n번째 줄에는 n개 만큼의 별이 찍힙니다. 이때 몇번째 줄인지 알 수 있는 방법은 i입니다. 첫번째 줄은 i가 0, 2번째 줄은 i가 1 ... 이런 식이죠. 즉 i만큼 반복하여 별을 찍어주면 됩니다.
for(var i=0; i<5; i++){ var string = ""; for(var j=0; j<=i; j++){ string = string+"*"; } console.log(string); }
이렇게 반복문 안에 반복문이 들어 있는 것을 다중반복문이라고 하고, 위의 경우에는 2중반복문이 되겠습니다. 반복문안의 반복문에는 반복에 사용되는 변수 이름으로 j를 사용하였는데, j는 단순히 알파벳 순서상 i 다음이기 때문에 주로 사용됩니다. 3중 반복문인 경우에 3번째 반복문에는 k가 주로 사용됩니다.
자 그럼, 위의 내용을 바탕으로 아래 그림처럼 별을 찍는 반복문을 만들어 봅시다.
연습문제 13-1
힌트: 별의 숫자가 줄 번호와 반대로 움직입니다.
연습문제 13-2
힌트: 빈칸을 먼저 찍고, 별을 찍어줘야 합니다.
연습문제 13-3
이 문제는 고난이도 보너스 문제입니다. 너무 어렵다면 그냥 넘어가셔도 좋습니다.
'프로그래밍 입문' 카테고리의 다른 글
자바스크립트로 프로그래밍 입문 14. HTML, 파일로 저장하기 (0) | 2018.11.03 |
---|---|
[자바스크립트 연습문제] 13 풀이 (0) | 2018.10.30 |
자바스크립트로 프로그래밍 입문 13. 반복문(Loop Statement) 2 - for, continue, break, (0) | 2018.10.25 |
[자바스크립트 연습문제] 12-1 풀이 (0) | 2018.10.24 |
자바스크립트로 프로그래밍 입문 12. 반복문(Loop Statement) 1 - while, 증감연산자 (0) | 2018.10.18 |