본문 바로가기
카테고리 없음

node.js/ 자바스크립트 - 16. 반복문 FOR

앞장의 WHILE 문으로 1~100까지 합을 구하는 코드를 살펴보도록 할까요?
코딩을 처음 접하신다면, 아래와 같은 말로 표현된 알고리즘을 생각하시면 좋습니다.

1) 변수sum ← 0 대입
2) 변수 i ← 1 대입
3) i값이 100 을 초과했다면 7)번으로 간다

4) 변수sum 에 변수i값을 더해준다
5) i값을 1을 더해준다
6) 3)번으로 간다
7) 변수sum 을 출력한다.


위 내용을 코드로 옮기면 아래와 같은데요.

let sum=0;         // 1)
let i=1;           // 2)
while(i<=100) {   // 3)
sum+=i;            // 4)
  i++;              // 5)
}                    // 6)
console.log(sum); // 7)
결과
5050


‘몇 번만 반복해!’라는 패턴이 자주 사용되다 보니 보다 편리한 사용법이 등장했습니다.
그것은 for 라는 반복문입니다.
for 에 적합한 알고리즘을 말로 다시 정리해보겠습니다. 좀 더 표현이 쉬워졌지요?

1) 변수sum ← 0 대입
2) 변수 i를 1부터 100까지 1씩 더해주면서 3) 번 반복 실행
3) 변수sum 에 변수i값을 더해준다.

4) 변수sum 을 출력한다.


코드는 아래와 같은데요. 규칙에 맞게만 코드를 작성하면 위 코드가 그대로 작동됩니다.

let sum=0;
for(let i=1; i<=100; ++i)
{
    sum+=i;
}
console.log(sum); // 5050 출력


for 를 사용하는 규칙은 아래와 같습니다.

for(let 반복할변수=시작값; 반복할변수 <=종료값; 반복할변수++) {}


for 반복문은 좀 더 유연하게 사용할 수가 있는데요.
만일 1 ~ 100까지 짝수의 합을 구할 경우 아래와 같이 사용할 수 있습니다.

let sum=0;
for(let i=2; i<=100; i+=2)
{
    sum+=i;
}
console.log(sum);
결과
2550


이 때 주의할 점은 짝수의 합이기 때문에 시작 값에 2를 대입해주어야 한다는 것입니다.

만일 1부터 10000까지 5의 배수의 합계만을 구한다면 코드는 어떻게 되어야 할까요?
위의 코드에서 약간만 응용해서 수정해 보세요. 정답은 10005000 이 나와야 합니다.

        :

답안은 아래와 같습니다. 답안이 꼭 한가지는 아니니 내용이 달라도 결과가 맞으면 무방합니다.

let sum=0;
for(let i=5; i<=10000; i+=5)
{
    sum+=i;
}
console.log(sum);


또한 for 문은 중첩해서(겹쳐서) 사용할 수 있습니다. 코드블록 안에 코드블록이 있는 셈인데요,
아래 코드는 변수i에는 2~9까지, 변수 j에는 1~9까지 반복하며 구구단을 출력하는 코드입니다.

for(let i=2; i<=9; i++)
{
for(let j=1; j<=9; j++)
  {
    console.log( i + " x " + j + " = " + ( i * j ) );
  }
}
결과
2 x 1 = 2
2 x 2 = 4

2 x 3 = 6
    :
    :
9 x 7 = 63

9 x 8 = 72
9 x 9 = 81

필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)

도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~


다음게시글 : https://itadventure.tistory.com/487

 

node.js/자바스크립트 - 17. 이런 케이스는 이렇게 해!

while 문의 진보 형태로 for 문이 있듯이, if문의 진보 형태로 switch ~ case 문이 있습니다. switch – case 문의 사용 형태를 정리하면 아래와 같은데요. switch(변수) { case "값1":    값1에 매칭될 때 실..

itadventure.tistory.com