for(let i = 0; i < 2; i++) {
console.log(i)
}
1. for문을 실행하면, 맨 먼저 변수 선언문 let i = 0; 이 실행된다.
- 변수 선언문은 단 한번만 실행됨 ! **
2. 변수 선언문의 실행이 종료되면, 조건식이 실행된다. 현재 변수 i의 값은 0이므로
조건식의 평가결과는 true이다.
3. 조건식의 평가 결과가 true이므로 코드블록이 실행된다.
- 증감문으로 실행흐름이 이동하는 것이 아니라 코드블록으로 실행 흐름이 이동함 !
4. 코드 블록의 실행이 종료되면 증감식 i++가 실행하여 변수 i의 값은 1로 재할당 됨.
5. 증감식 실행이 종료되면, 다시 조건식이 실행된다. 변수 선언문이 실행되는 것이 아니라
조건식이 실행된다는 점에 주의하자.(* 변수 선언문은 단 한번만 실행됨*)
- 현재 i 변수의 값은 1이므로 조건식 평가 결과는 true이다.
6. 조건식의 평가 결과가 true이므로 코드블록 다시 실행
7. 코드 블록의 실행이 종료되면, 증감식 i++가 실행되어 i 변수의 값은 2로 재할당 됨.
8. 증감식 실행이 종료되면, 다시 조건식 실행, 현재 i 변수의 값은 2이므로 조건식 평가가
false다. 조건식의 평가 결과가 false이므로 for문 실행 종료.
for (let i = 0; i < 2; i++) {
for(let j = 0; j < 2; j++) {
console.log(`i는 ${i} , j는 ${j}`)
}
}
for문 실행 -> 변수 선언문 i = 0; 조건식 실행 true -> 코드블록 내 for문 실행 ->
변수 선언문 j 실행 -> 조건식 실행 true -> 코드블록 실행 결과 "i는 0 , j는 0" 코드 블록 종료
-> 증감문 실행 j++ 고로 j는 1 -> 조건문 실행 true -> 코드 블록 실행 결과 "i는 0 , j는 1"
코드블록 종료 -> 증감문 실행 j++ 고로 j는 2 -> 조건문 실행 결과 false -> 반복문 종료
-> 상단 for문 코드 블록 종료 -> 증감문 실행 i++ 고로 i는 1 -> 코드블록 실행 for문 동작
-> j 반복문 과정 반복 "i는 1 , j는 0" -> "i는 1 , j는 1" -> 코드 블록 종료 -> 증감문 실행 ->
j++ 로 j는 2 -> 조건식 false -> 반복문 종료 -> 상단 for문 증감문 실행 i++ , i는 2->
조건식 false로 반복문 종료.