같은 코드를 반복해서 쓰는 대신에, 반복문을 통해서 컴퓨터에게 주어진 코드 블록을 스스로 반복하도록 지시할 수 있습니다.
컴퓨터에 이러한 지시를 내리는 한 가지 방법은 for문을 사용하는 것입니다.
for문에는 다음과 같은 세 가지 식이 괄호 안에 구분되어 있습니다.
for문 구문은 다음과 같습니다.
for (let counter = 0; counter < 3; counter++) {
console.log(counter);
}
위의 예는 다음과 같이 출력됩니다.
0
1
2
for문은 데이터 구조를 반복하는 데 매우 유용합니다. for문을 사용하여 배열의 각 요소에 대해 동일한 작업을 수행할 수 있습니다. 배열의 각 요소를 반복하려면, for문에서 배열의 .length 속성을 조건에 사용해야 합니다.
for문이 배열에서 반복하는 예시입니다.
const animals = ['Grizzly Bear', 'Sloth', 'Sea Lion'];
for (let i = 0; i < animals.length; i++){
console.log(animals[i]);
}
위의 예는 다음과 같이 출력됩니다.
Grizzly Bear
Sloth
Sea Lion
위의 루프에서는 반복 변수 i를 명명했는데, 이것은 많은 반복문에서 볼 수 있는 변수 명명법입니다.
다른 종류의 반복문으로는 while문이 있습니다. 다음의 예시는 for문을 while문으로 바꾼 것입니다.
// A for loop that prints 1, 2, and 3
for (let counterOne = 1; counterOne < 4; counterOne++){
console.log(counterOne);
}
// A while loop that prints 1, 2, and 3
let counterTwo = 1;
while (counterTwo < 4) {
console.log(counterTwo);
counterTwo++;
}
'counterTwo'의 값이 증가하지 않는다면, 계속해서 초기 값인 1을 가질 것입니다. 즉, 조건인 'counterTwo < 4'는 항상 참으로 평가기에 계속해서 반복하게 될 것입니다. 이러한 경우를 infinite loop(무한 루프)라고 부르며, 무한 루프는 컴퓨터의 처리 능력을 모두 차지할 수 있기에 피해야 합니다.
경우에 따라 코드를 적어도 한 번 실행한 다음 초기 실행 후 특정 조건에 따라 반복하도록 해야 합니다. 이런 경우에는 'do.. while'문을 사용합니다.
while문과 'do.. while문'이 다른 점으로 while문과는 달리 'do...while'문은 조건이 참으로 평가되는지 여부에 관계없이 한 번 이상 실행된다는 것입니다.
const firstMessage = 'I will print!';
const secondMessage = 'I will not print!';
// A do while with a stopping condition that evaluates to false
do {
console.log(firstMessage)
} while (true === false);
// A while loop with a stopping condition that evaluates to false
while (true === false){
console.log(secondMessage)
};
위의 예시에서 'do.. while'문의 경우, firstMessage를 조건이 거짓임에도 문장을 한 번 출력하지만, while문의 경우 조건이 거짓으므로 문장을 출력하지 않습니다.
작성한 반복문에 대해서 정지 조건이 충족되지 않았음에도 반복문이 계속 실행되는 것을 중지하고 싶을 때, break 키워드를 사용할 수 있습니다.
for (let i = 0; i < 99; i++) {
if (i > 2 ) {
break;
}
console.log('Banana.');
}
console.log('Orange you glad I broke out the loop!');
위의 예시에서 i > 2일 때 break 키워드를 통해 반복문을 종료하게 됩니다.