문제 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) 증감식 순이다
sum += i; 는 sum = sum+ i; 의 값과 동일.<br>
+= 복합대입연산자란?
왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 왼쪽의 피연산자에 다시 대입하는 것을 의미한다
(= 이라는 기호가 수학적 기호처럼 같다는 표현이 아니다)
따라서, 식의 순서를 정리해보면
이므로 alert(sum) 을 호출하였을때의 값은 5050이다
그리고 한가지 더, 개념이나 프로그래머스를 풀면서 자꾸 나도 모르게 = 을 수학적인 개념으로 생각할 때가 많다
개발에서 =의 의미는 수학에서 말하는 같다(equal)라는 뜻이 아니다
프로그래밍에서 같다
는 ==
이고, =
는 대입(assign)
한다는 뜻이다
위에서 헷갈렸던 부분을 그림으로 그린 이유도 그 때문이다