반복문은 조건식이 참일 경우 코드 블록을 실행한다.
이후 다시 평가하여 거짓일때 까지 반복한다.
for문은 조건식이 거짓으로 평가될 때 까지 코드 블록을 반복 실행한다.
for (let index = 0; index < 10; index++) {
console.log(index);
}
index = 0 이므로 0 < 10 으로 시작할 것이다.
index++ // index + 1 이므로 index = 1 이 될것이다.
index < 10; 의 조건이 거짓이 될 때까지 계속 반복하여 실행한다.
for ( let i = 0; i < 10; i++) {
console.log(i);
}
가장 기본적인 구조의 for문이지만 위의 식이 눈에 들어온다면
대부분의 for문을 이해했다고 볼 수 있다.
실행 순서를 통해 for 문이 어떻게 동작하는지 알아보자
for ( let i = 0; i < 2; i++) {
console.log(i);
}
- for문 실행 시 let = i (변수 선언)이 실행되며, 최초 실행 후 반복되지는 않는다.
- 최초에 i 가 0 이므로 i < 2 의 조건식은 true로 평가된다.
- true 일 경우 코드 블록이 실행된다. 여기서 증감식(i++)으로 가지않고
console.log(i); 으로 이동하는 것에 주의해야한다.- 코드 블록의 실행이 종료되고 나서 증감식i++ 이 실행된다.
당연히 이때의 값은 1이 된다.- 증감식의 실행이 종료되면 다시 조건식이 실행된다.
최초의 변수 선언문은 반복되지 않으므로 i < 2 의 조건식부터 실행되는 것이다.
i = 1 이므로 1 < 2 true 가 평가된다.- true 이므로 코드 블록이 실행된다.
- console.log(i); // 1 이 될 것이다.
- 이후 증감식으로 넘어가 i 는 2가 된다.
- 마찬가지로 변수 선언은 거치지 않고 i < 2 의 조건식으로 오게 되어 i = 2 이므로 평가 결과는 false가 되어 for문의 실행이 종료된다.
행동 하나하나를 풀어놔서 복잡해보일 수 있지만 단순한 구조라는걸 알아야한다.
결국 조건문의 평가 결과가
false 가 될때까지 순환시켜 결국 false 값으로 종료되는 것이다.
위의 예제처럼 i < 2 와 같은 조건식이 전부라면 for문을 사용할 필요는 없을 것이다.
그렇지만 위 조건식의 2 대신 엄청나게 많은 배열의 길이만큼 이라고 했을 때
효율이 늘어나는 것을 생각해보면 for문이 굉장히 중요한 것을 알 수 있다.