개발/javascript

제어문04 - for 문

마루쨩 2023. 9. 24. 14:58

"제어문"

 

3. 반복문

반복문(Loop statement)은 주어진 조건식의 평가 결과가 참인 경우 코드 블럭을 실행한다. 그 후 조건식을 다시 검사하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이는 조건식이 거짓일 때까지 반복된다.

 

자바스크립트는 3가지 반복문 for 문, while 문, do...while 문을 제공한다. 그 외에도 for...in 문, ES6에서 새롭게 도입된 for...of 문이 있다. for...in 문과 for...of 문에 대해서는 나중에 살펴보기로 하자.

 

3.1. for 문

for 문은 조건식이 거짓으로 판별될 때까지 코드 블록을 반복 실행한다. 가장 일반적으로 사용되는 반복문의 형태는 아래와 같다. 변수 선언문의 변수 이름은 반복을 의미하는 iteration의 i를 사용하는 것이 일반적이다.

for (변수 선언문 또는 할당문; 조건식; 증감식) {
	조건식이 참일 경우 반복 실행될 문;
}
for (var i = 0; i < 10; i++) {
	console.log(i)
}
// 0 1 2 3 4 5 6 7 8 9

아래 예제는 위 예제를 역으로 반복하는 for 문이다. 변수 i가 1으로 초기화된 상태에서 시작하여 i가 0보다 같거나 커질 때까지 코드 블록을 2번 반복 실행한다.

for (var i = 1; i >= 0; i--) {
	console.log(i);
}
// 1 0

for 문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 반드시 사용할 필요는 없다. 어떤 식도 선언하지 않으면 무한 루프가 된다.

// 무한루프
for (;;) { ... }

for 문 내에 for 문을 중첩해서 사용할 수 있다. 이런 것을 이중 루프라고 한다. 아래는 두 개의 주사위를 던졌을 때, 두 눈의 합이 6이 되는 모든 경우의 수를 출력하는 예제다.

for (var i = 1; i <= 6; i++) {
	for (var j = 1; j <= 6; j ++) {
    	if (i + j === 6) console.log(`[${i}, ${j}]`);
    }
}

출력 결과는 아래와 같다.

[1, 5]
[2, 4]
[3, 3]
[4, 2]
[5, 1]