자바스크립트에서 반복 작업을 수행하기 위해 사용할 수 있는 두 가지 주요 반복문이 있는데, 바로
for
문과while
문이다.
이전에 배운
for
문은 반복 횟수가 정해져 있는 경우에 적합하지만, 반복을 멈출 시점이 명확하지 않을 때는while
문이 유리하다. 이번에는while
문이 어떤 상황에서 더 유용한지 알아보자.
while (조건 부분) {
// 동작 부분
}
while
문은 조건 부분이 참인 동안 계속해서 동작 부분을 반복 실행한다. 이 기본 구조는 if
문과 비슷해 보이지만, 조건이 충족될 때까지 반복되는 반복문이라는 점에서 다르다.
특별한 경우가 아니라면 for
문과 while
문은 서로 대체 가능하다. 아래 예제는 for
문을 while
문으로 바꿔보며, 두 문법의 차이를 비교해보았다.
// for 문
for (let i = 1; i <= 10; i++) {
console.log(`반복문 실행 중 ${i}`);
}
// while 문
let i = 1; // 반복 횟수를 저장하는 변수를 반복문 밖에서 초기화
while (i <= 10) {
console.log(`반복문 실행 중 ${i}`);
i++; // 조건 충족을 위한 추가 동작 부분
}
이 예제에서 for
문과 while
문은 동일한 작업을 수행한다. 반복 횟수를 카운트하는 변수 i
는 while
문 외부에서 선언해주고, 내부에서 증가시킨다. 코드 결과는 같지만, for
문이 코드가 더 직관적이고 간결해 보인다.
반복 횟수가 명확히 정해져 있지 않거나, 특정 조건을 충족할 때까지 반복해야 하는 경우에는 while
문이 더 유리하다. 아래 예제는 조건을 만족할 때까지 반복하는 while
문의 사용 사례다.
다음은 while
문을 사용해 특정 조건을 만족하는 값을 찾는 코드다.
let i = 30; // 초기값 설정
while (i % 7 !== 0) { // 7의 배수가 아닌 동안 반복
i++; // i를 1씩 증가
}
console.log(`30보다 큰 수 중 가장 작은 7의 배수: ${i}`);
이 코드는 i
가 30보다 크고 7의 배수인 첫 번째 값을 찾는다. while
문이 조건을 확인하면서 i
를 1씩 증가시키고, 조건을 만족하면 반복을 종료한다.
for
문으로도 작성할 수는 있지만, 반복 조건을 확인하고 외부에서 조건 변수를 활용해야 하는 경우에는 while
문이 더 적합하다.
for
문은 반복 제어 변수를 내부에서 선언하여 로컬로 관리하므로, 반복문이 종료된 후에는 외부에서 해당 변수에 접근할 수 없다.for (let i = 0; i < 10; i++) {
console.log(i); // i는 for 문 내부에서만 유효
}
// console.log(i); // Error: i is not defined
while
문에서는 조건 변수를 반복문 외부에서 선언해 글로벌하게 관리할 수 있으므로, 반복 종료 후에도 변수에 접근이 가능하다.let i = 0;
while (i < 10) {
console.log(i);
i++;
}
console.log(`반복문 종료 후 i의 값: ${i}`); // 반복 종료 후에도 i 사용 가능 반복문 종료후의 i의 값은 10으로 출력한다.
- while 문은 특정 조건을 만족할 때까지 반복 실행하는 데 사용된다.
- for 문과 while 문은 상황에 따라 서로 대체가 가능하지만, 각자의 강점이 있다.
- 반복 횟수가 명확할 때는
for
문이, 조건에 따라 반복을 종료해야 할 때는while
문이 더 적합하다.
이제 반복문을 선택할 때 어떤 기준으로 for
문과 while
문을 사용할지 명확해졌다. 반복 작업을 효과적으로 처리하기 위해, 상황에 맞는 반복문을 선택하는 연습이 필요하다.