예제) 1부터 100까지를 모두 더한 값을 for문을 활용하여 구하시오.
tmi, 1부터 100까지의 합은 중학교때 처음 접했던 것 같은데,, 그때는 귀찮아서 그냥 답을 외워버렸다..(셤에 나온다길래) 근데 JS만나니 아주 반갑네;;ㅎㅎㅎ
let sum = 0;
for (let i = 0; i <= 100; i++) {
sum = sum + i;
}
console.log(sum); // 5050
*반복문의 구조는
for (초기값; 조건식; 증감식) {
실행코드
}
이렇다.. 그래,, 기본 구조는 무엇이 어려울까.. 이걸 사용해서 뭔갈 만드는게 어려운거지...ㅎㅎ;;;
*내가 제일 어려웠던 건 무엇의 합이라고 하면 어떤 범위를 뜻하는 문법이 등장하고 이를 합치는 어떤 식이 있어야 한다고 생각했는데, 이건 내가 =(할당)과 ===(동치연산자, 그나마 수학에서의 =과 비슷한 의미..)을 구분하지 못해서 나타나는 착각이었다.
나의 착각
: sum = sum + i 니까, 만약에 i가 0부터 시작한다고 한다면, sum = 0+0
: 그 다음 반복되니까, i가 1, sum = 0+1
읭? 근데,, 이 둘은 어떻게 '합'이라는 개념으로 연결되는거지????
올바른 사고
: sum = sum + i 니까,
1) sum = 0(sum의 할당값) + 0(for문의 초기값), 즉! 반복의 첫 단계에서는 sum에는 0이 할당되었다! 이후, 증감식에 따라 i값 1증가!
2) sum = 0(sum의 할당값) + 1(for문의 증감값), 반복의 두번째 단계에서는 sum에 1이 할당되었다! 이후, 동일
3) sum = 1(sum의 할당값) + 2(for문의 증감값), 반복의 세번째 단계에서는 sum에 3이 할당되었다! 이후, 동일
4) sum = 3(sum의 할당값) + 3(for문의 증감값), 반복의 네번째 단계에서는 sum에 6이 할당되었다! 이후, 동일
그니까,, sum = sum + i는 for문의 소괄호에 의해 i값이 1씩 증가하며 더해지는 결과가 나오는 식일 뿐이지,
sum = sum + i 자체가 '어떤 범위의 값들의 합'이라는 의미를 갖진 않는다.
** 개념과 별개로, 많은 경우 위와 같은 용도를 위해 활용되는 것 같긴 같다.
오늘의 교훈...
"내 상식에 내용을 맞추지 말고, 내용에 따라 나의 상식을 바꾸도록 하자..."
test-1
'프로그래밍 언어 > Javascript' 카테고리의 다른 글
Arrow Function (0) | 2023.01.19 |
---|---|
__proto__ : 프로토타입 (0) | 2023.01.16 |
Class and Instance (0) | 2023.01.16 |
객체란? (0) | 2023.01.16 |
자바스크립트의 타입과 변수 (2) | 2022.12.16 |