반응형
반복문을 사용하여 많이 연습하는 예제 중 하나인
별 찍기에 대해서 연습해보려 한다.
1. 별찍기 기본
*
**
***
****
*****
위 형태의 별 모양은 반복문을 돌려서 출력할 수 있다.
for (var i = 1; i <= 5; i++){ // 별 개수의 초기값 1; 최대 별 개수 5; 별개수는 1씩증가
console.log("*".repeat(i)); // 문자열.repeat(n)이라는 함수로 문자열을 n번 만큼 반복할 수 있다.
}
또한 반대 모양인
*****
****
***
**
*
의 모양도 앞서 사용한 반복문을 응용해서 만들 수 있다.
for (var i = 5; i >= 1; i--){ // 별 개수의 초기값 5; 별 개수 최소값 1; 별개수는 1씩감소
console.log("*".repeat(i));
}
2. 별찍기 응용
이제 별이 왼쪽에 붙는 형태가 아닌
오른쪽에 붙여서 별을 표현할 수 있다.
for(var i = 1; i <=5; i++){
console.log(" ".repeat(5 - i) + "*".repeat(i));
}
// " "의 공백을 repeat()시켜줘서 별모양 앞에 여백을 준다.
// 이 때, 여백의 칸 수는 별의 수와는 다르게
// 4 -> 3 -> 2 -> 1 로 줄어들기 때문에 5 - i 를 적용시켜주었다.
반대의 경우
for(var i = 5; i >= 1; i--){
console.log(" ".repeat(5 - i) + "*".repeat(i));
}
// 공백이 0 -> 1 -> 2 -> 3 -> 4 의 순서로 추가되기 때문에
// i 값이 5로 바뀐 상황에서 5 - i로 적용한다.
3. 별찍기 심화
이제 한 쪽으로 치우친 별이 아닌,
트리 형태, 거꾸로 된 트리 형태를 만들어 볼 것이다.
*
***
*****
*******
*********
for (var i = 1; i <= 9; i = i+2){ // 별의 최대 개수 9개; 별의 개수는 1-3-5-7-9로 2개씩 증가
console.log(" ".repeat((9-i)/2) + "*".repeat(i))
}
// 공백의 수는 4 -> 3 -> 2 -> 1 로
// (9-i)/2 를 적용해준다.
거꾸로 된 트리 형태로는 아래의 소스를 적용할 수 있다.
for (var i = 9; i >= 1; i = i-+2){ // 별의 최대 개수 9개; 별의 개수는 1-3-5-7-9로 2개씩 증가
console.log(" ".repeat((9-i)/2) + "*".repeat(i))
}
이 처럼 반복문을 사용해서 원하는 모양을 만들 수 있다.
반응형
'Frontend > Javascript' 카테고리의 다른 글
Javascript (자바스크립트) - 배열 (0) | 2020.03.22 |
---|---|
Javascript (자바스크립트) - 객체 (0) | 2020.03.22 |
Javascript (자바스크립트) 예제 - 끝말잇기 만들기 (0) | 2020.03.21 |
Javascript (자바스크립트) 예제 - 구구단 만들기 (0) | 2020.03.21 |
Javascript (자바스크립트) - 반복문 (for문, while문, do while문) (0) | 2020.03.21 |