반복문은 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 제어문이다.
조건식의 평가 결과가 참인 경우 { } 코드블록을 실행하며, 그 후 조건식을 다시 평가하여 여전히 참인 경우에 코드블록을 다시 실행하기를 반복하며, 조건식이 거짓일 때 조건식의 반복을 멈춘다. 반복문은 for문, while문, do...while문이 있다.
for문은 반복 횟수가 명확할 때 주로 사용하는 반복문이다.
for문의 기본구성은 () 괄호내에 초기식, 조건식, 증감식이 들어가고 { } 내에 반복실행할 문이 들어간다.
변수 선언문(할당문)은 맨 처음 딱 한번만 실행되며, 변수 선언문이 실행된 후, 조건식이 실행된다. 조건식의 평가 결과가 참일 시 {}코드블록이 실행된다. 코드블록의 실행이 종료되면 증감식이 실행된다. 조건식이 거짓이 될때 까지 무한반복되며 조건식이 거짓일 때 for문의 실행이 끝난다.
초기식 → 조건식(참) → {실행문} → 증감식 → 조건식(참) → {실행문} → 증감식 → 조건식 (거짓) 정지!
// 기본형태
for (초기식(변수 선언, 할당 및 초기값/ 초기화 값); 조건식(실행될 조건); 증감식;) {
조건식이 참인 경우 반복 실행할 문
}
let num = 1; // 변수 Num을 선언하고 1을 할당한다.(1로 초기화한다.)
for (let i = 0; i <= 2; i++){ //(i+1=i)) { // 변수 i 의 초기화 값 0이
num = num + i; // 실행될 조건 i 가 2가 될때까지
} // i가 1씩 증가하는 스탭으로 반복해줄 것이다.
console.log(num); // 7
// 조건식 i)0 <= 2 / 참 -> 실행될 코드블록 {Num = 1 + i)0} // Num = 1
// -> 증감식 i)0 + 1 = i)1;
// 조건식 i)1 <= 2 / 참 -> 실행될 코드블록 {Num = 1 + i)1} // Num = 2
// -> 증감식 i)1 + 1 = i)2;
// 조건식 i)0 <= 2 / 참이면 -> 실행될 코드블록 {Num = 2 + i)2} // Num = 4
// -> 증감식 i)2 + 1 = i)3;
// -> 조건식 i)3 <= 2 // 거짓 -> 반복문 정지
// i가 3가되서 2보다 i가 커서 조건식이 거짓! -> 반복문(for문)의 실행을 정지한다. (반복문이 총 3번 반복)
while문은 반복 횟수가 불명확할 때 주로 사용하는 반복문이다.
while문은 for문과 다르게 () 괄호 안에 조건식만 들어가며, 초기화식과 증감문을 따로 작성하며 증감문은 {} 코드블록에 작성한다.
조건식의 평가 결과가 불리언 값이 아니면 강제변환하여 논리적 참, 거짓을 구별한다.
let sum = 2;
let i = 2; // 초기값 설정
while(i <= 4) { // 조건식
sum = sum + i; // 실행할 식
i++; //(i+1=i) // 증감문
}
console.log(sum); // 10
do .. while 문은 do 문 내의 코드 블록을 먼저 실행하고 나서 조건식의 참과 거짓을 평가한다. 조건식이 참인 경우 코드블록을 반복하고, 거짓인 경우에는 코드블록을 반복하지 않는다.
따라서코드블록은 무조건 한 번은 실행되는 점이 거짓일때 코드블록이 실행되지 않는 while문, for문과 다르다.
let number = 0;
do // number이 3보다 작으면 코드블록을 반복실행한다.
{
console.log(number); // 0 1 2
number++;
} while (number < 3);
console.log()