
반복문은 조건을 만족하는 동안 코드 블록을 반복적으로 수행한다. 자바스크립트에서는 for-loop, for-in, for-of, while 같은 반복문을 제공한다.
let brands=["애플", "구글", "페이스북", "아마존", "삼성전자"];
console.log(brands[0]); //애플
console.log(brands[1]); //구글
console.log(brands[2]); //페이스북
console.log(brands[3]); //아마존
console.log(brands[4]); //삼성전자
brands 배열에 담긴 브랜드명을 콘솔 창에 모두 출력하려면 배열의 처음 인덱스부터 마지막 인덱스까지 코드를 작성해야 한다.
만약 배열에 담긴 데이터 수가 100개라면 위와 같은 코드를 100줄을 작성해야한다. 반복문은 동일한 코드 블록을 지정된 횟수만큼 반복적으로 실행할 수 있도록 해준다.
for(statement 1; statement 2; statement 3){
//코드 블록
}
for(let i=0; i<brands.length; i++){
console.log(brands[i]);
}
이렇게 하면 변수 i의 값이 배열 brands의 길이인 5보다 작은 경우에는 코드 블록이 실행되고, 변수 i의 값이 4일 때까지 코드 블록을 실행한 후 변수 i의 값이 5로 바뀌면 statement2 조건을 만족하지 않으므로 더 이상 코드 블록을 실행하지 않고 종료된다.
for-in문은 데이터 타입 중 배열뿐만 아니라 Object에도 사용할 수 있는 반복문이다. Object는 데이터를 저장할 때 키(key) 를 사용하여 저장하고, 키를 이용해서 읽을 수 있다. for-in문은 Object 내에 정의된 키 값의 수만큼 코드 블록을 실행한다.
for(const key in object){
//실행할 코드 블록
}
let person={fname:"John", lname:"Doe", age:25};
for(const key in person){
console.log(person[key]); //오브젝트 key에 해당하는 데이터(값)를 출력
}
for-in문을 사용하면 반복문이 실행되면서 fname, lname, age를 key 변수에 할당하게 되고, 코드 블록 내의 person 객체에 key를 전달하여 저장된 데이터를 가져올 수 있다.
let brands=["애플", "구글", "페이스북", "아마존", "삼성전자"];
for(const brand in brands){
console.log(brand); //배열의 인덱스 번호 출력
}
for-in문은 배열에 사용하면 배열에 등록된 데이터 수만큼 반복문을 실행한다.
for-of문은 Array, Map, String 등 iterable(반복 가능한) 객체에서 사용 가능한 반복문이다.
for(const element of iterable){
//실행할 코드 블록
}
for-of를 사용하면 for-loop를 사용하는 것보다 훨씬 코드가 간결해진다
let brands=["애플", "구글", "페이스북", "아마존", "삼성전자"];
for(const brand of brands){
console.log(brand); //배열의 각 요소 출력
}
while문은 조건식이 true인 동안 코드 블록을 실행한다. 조건식이 false가 되기 전까지 반복문을 수행한다.
while(condition){
//코드 블록
}
let i=1;
while(i<=10){
console.log("The number is "+i);
i++;
}
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10
배열(array)을 이용해 반복문을 사용할 때는 for문이 편리하고, 배열이 아닌 특정 조건으로 반복문을 사용할 때는 while문을 사용하면 된다.
let inputPrice = 7000; //사용자가 넣은 지폐 금액
let coinUnit = 500; //반환할 500원짜리 동전
let coinCount = 0; //반환될 500원짜리 총 개수를 담을 변수
while (inputPrice > 0) {
//사용자가 넣은 금액이 0이 될 때까지
inputPrice = inputPrice - coinUnit; //inputPrice 금액이 500원씩 줄어듦
coinCount++; //반복문이 한 번 돌때마다 반환되는 500원짜리 동전 수를 증가시킴
}
console.log(coinCount); //500원짜리 총 개수
14
이처럼 배열의 길이가 아니라, 특정 조건을 만족하는 동안 반복문을 실행하고자 할 때 while문을 사용하면 효율적으로 문제를 해결할 수 있다.