반복문(=for문)은 매번 같은 내용 or 일정하게 변하는 내용을 복붙하지 않게 만들어준다.
즉, 동일한 동작을 조건을 만족할 때까지(=원하는 횟수만큼) 반복해서 수행하는 문법이다.
* 순서를 유심히 봐주세요. for (let i=0; i<10; i++) {console.log(i)} 0️⃣ 1️⃣ 3️⃣ 2️⃣ // 1부터 9까지 콘솔로그에 찍히게 됨
이게 바로 반복문(=for문)의 형식이다.
for 다음에 소괄호 ()는 조건을 넣는 곳이고, 중괄호 {}는 동작을 지정해주는 곳이다.
let i 는 i 라는 변수를 선언하겠다는 것이며
임의로 정한 변수라 다른 변수명이 와도 괜찮다. (보통 i 가 코드 가독성이 좋아 자주 사용됨.)
i = 0부터 시작한는 의미로 조건 내에는 있지만, 단순 시작 지점을 설정한 것이다.
따라서 머릿 속에 반복문의 동작 원리를 그려넣을 때는 잠깐 잊어도 좋다.
( * 끝에 세미콜론(;)은 반드시 써주어야 함. 반복문 조건 내에서 구분자 역할을 하기 때문.)
i가 10보다 작은 조건에서만 동작을 수행하겠다는 얘기다.
즉, for문이 언제까지 동작할지 정하는 조건이다.
일단 i = 0은 10보다 작으니 ok이다. 통과가 되면 동작을 수행할 자격을 얻는다.
한계 조건내에 있을 경우, 수행하는 동작을 알려주는 부분이다.
위에서 i = 0 이었으므로 콘솔에 0 값이 로그된다.
콘솔을 찍고 나서 수행되는 조건이다.
계산 조건이라 표현한 이유는 그 다음 i 값에 대한 증감 연산을 수행하는 조건이기 때문이다.
i++는 i = i + 1과 같은 의미이다.
해당 공식에 따라 i = 0을 대입하면
새로운 i = 1; 이 탄생된다.
- i 가 10씩 감소하는 반복문을 만들고 싶은 경우
for (let i = 50; i >= 0; i -= 10){console.log(i)} // 50, 40, 30, 20, 10, 0 출력
- i 가 2씩 곱해지는 반복문을 만들고 싶은 경우
for (let i = 0; i < 6 ; i++){console.log(i * 2)} // 0, 2, 4, 6, 8, 10 출력
여기까지가 한 번의 loop다.
그럼 3번이 끝났으니 다시 0번으로 갈까? 아니, 1번으로 간다.
시작점은 말그대로 시작점일뿐, 스타트를 끊고나면 loop에 관여되지 않는다.
결국 for문의 순서는 다음과 같다.
0️⃣ ▶️ [ 1️⃣ ▶️ 2️⃣ ▶️ 3️⃣ ] * ♾
동작 원리에 따라 숫자 1부터 9까지 콘솔에 찍히는 것이며, 조건을 충족하지 않으면 위의 loop는 종료된다.
반복문의 동작 원리를 완벽히 익힐 수 있도록 많이 연습해보자!
BTS 콘서트에 QR 찍고 입장하는 손님에게
console.log("안녕하세요, 00번째 아미님. 콘서트에 오신 것을 환영합니다.")
라고 인사해주는 인사봇이 있다고 하자.
이거 일일이 ctrl + c, ctrl + v 해서 콘솔에 찍고 있을거 생각하면 아찔하다..; ㅋㅋㅋㅋㅋㅋㅋ
for문은 이처럼 개발자에게 편의성을 가져다주는 도구이자,
처리 속도를 높일 수 있는 아주 효율적인 문법인 것이다!
송이님 포스트는 항상 적절한 짤과.. 예시로 읽기 너무 편해요☺️ 힘들게 쓰셨을텐데 이렇게 편하게 읽어도 될지...👀