Language/JavaScript
[JavaScript] while문 vs do-while문 차이점 비교
Kun Woo Kim
2025. 8. 6. 09:59
728x90
프로그래밍을 하다 보면 반복문을 자주 사용하게 된다. 그중에서도 while문
과 do-while문
은 조건 기반 반복문으로 자주 비교된다. 이번 글에서는 이 두 문법의 차이를 직접 코드 예제를 통해 확인하고, 실제로 어떤 상황에서 어떤 문법이 더 적합한지를 정리해본다.
1. 기본적인 차이점
while문
은 조건을 먼저 확인한 후 코드 블록을 실행하고,do-while문
은 코드 블록을 먼저 실행한 후 조건을 확인한다.
// while문 - 조건 먼저 확인
let whileCounter = 0;
while (whileCounter < 3) {
console.log(whileCounter);
whileCounter++;
}
// do-while문 - 코드 먼저 실행
let doWhileCounter = 0;
do {
console.log(doWhileCounter);
doWhileCounter++;
} while (doWhileCounter < 3);
결과적으로 while문은 조건이 false이면 한 번도 실행되지 않지만, do-while문은 조건이 false여도 최소 한 번은 실행된다.
2. 조건이 처음부터 false인 경우
// while문
let whileFlag = false;
while (whileFlag) {
console.log('이 메시지는 출력되지 않음');
}
// do-while문
let doWhileFlag = false;
do {
console.log('이 메시지는 출력됨 (최소 1번 실행)');
} while (doWhileFlag);
while문은 조건이 false이면 코드 블록이 아예 실행되지 않지만, do-while문은 최소 한 번은 실행되므로 사용자 알림이나 초기 처리 등에 적합하다.
3. 실제 사용 시나리오 비교
사용자 입력 시뮬레이션
// while문 (잘못된 방식)
let userInput = 0;
while (userInput < 1 || userInput > 10) {
userInput = Math.floor(Math.random() * 15);
}
// do-while문 (권장되는 방식)
let validInput;
do {
validInput = Math.floor(Math.random() * 15);
} while (validInput < 1 || validInput > 10);
사용자에게 값을 최소 한 번은 입력받아야 할 때는 do-while문이 훨씬 적절하다.
메뉴 시스템
// while문 (문제 있음)
let menuChoice = 0;
while (menuChoice !== 4) {
// 메뉴 출력 및 선택
}
// do-while문 (더 자연스러움)
let choice;
do {
// 메뉴 출력 및 선택
} while (choice !== 4);
초기 메뉴 출력이 반드시 한 번은 실행되어야 하므로, 메뉴 시스템 구성 시에도 do-while문이 더 적합하다.
4. 성능 비교
// while문 성능
let whileTest = 0;
while (whileTest < 1000000) {
whileTest++;
}
// do-while문 성능
let doWhileTest = 0;
do {
doWhileTest++;
} while (doWhileTest < 1000000);
간단한 반복 작업에서는 성능 차이는 거의 없다. 따라서 성능보다는 코드 흐름의 자연스러움에 따라 선택하는 것이 좋다.
5. 요약
- while문은 조건을 먼저 확인하고 실행한다.
- do-while문은 코드를 먼저 실행한 뒤 조건을 확인한다.
- do-while문은 조건이 false여도 최소 1회 실행된다.
- 사용자 입력, 메뉴 시스템 등 초기 1회 실행이 필요한 경우 do-while문이 적합하다.
- 성능상 큰 차이는 없다.
do-while문은 상대적으로 사용 빈도가 낮지만, 특정 상황에서는 매우 유용하게 사용될 수 있다. 따라서 두 문법의 차이를 정확히 이해하고 상황에 맞게 사용하는 것이 중요하다.
728x90