JavaScript 기초 문제(2) / for문

Soozynn·2021년 5월 1일
0

문제 3) 1부터 100까지의 합을 구하는 프로그램을 작성하시오.
결과는 alert()를 호출해서 경고창으로 출력하시오.

     1부터 100까지의 합 구하기 = `반복문 for문`을 이용

<내가 짠 코드>

    let sum = 0;
    for(let i = 1; i <= 100; i++) {
      sum += i;    // 여기서, += 복합대입연사자는 x=x+i 을 의미.
    }
    alert(sum);  답은 5050이 나옴.
    

이 문제에서 for문은 쉽게 생각하고 만들었지만,
총 값을 어떤식으로 더해줘야하는지에 대해서 시간을 많이 할애했다.
특히 복합대입연산자가 이해가 잘 안가서 많이 낑낑댔다.
sum = sum + i라는 값 자체를 수학적으로 접근해서 이해가 안됐던 부분이다.

풀이)

for(초기식;조건식;증감식) {
 실행할 코드
 }   

for문의 실행순서는 1) 초기식 2) 조건식 3) 실행할코드 4) 증감식 순이다


먼저 더해진 i 값을 담을 변수가 필요하기 때문에 i값을 담아줄 그릇 역할의 코드 let sum = 0; 을 설정
조건이 1부터 100까지의 합이기에 let i = 0부터 해도 되지만 의미가 없으므로 초기식을 let i =1; 로 설정하고, 조건식은 i <= 100으로 설정한다.

sum += i; 는 sum = sum+ i; 의 값과 동일.<br>

여기서 잠깐, 🙄

+= 복합대입연산자란?

왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 왼쪽의 피연산자에 다시 대입하는 것을 의미한다
(= 이라는 기호가 수학적 기호처럼 같다는 표현이 아니다)

따라서, 식의 순서를 정리해보면

이므로 alert(sum) 을 호출하였을때의 값은 5050이다


그리고 한가지 더, 개념이나 프로그래머스를 풀면서 자꾸 나도 모르게 = 을 수학적인 개념으로 생각할 때가 많다

개발에서 =의 의미는 수학에서 말하는 같다(equal)라는 뜻이 아니다
프로그래밍에서 같다==이고, =대입(assign)한다는 뜻이다
위에서 헷갈렸던 부분을 그림으로 그린 이유도 그 때문이다

0개의 댓글