do...while 루프는 while 루프와 거의 같지만, 결정적인 차이가 하나 있습니다. 바로 조건 검사가 루프의 시작이 아닌 마지막에 이루진다는 점입니다.
이 특성 덕분에 do...while 루프는 조건식이처음부터 false로 평가되더라도 루프 본문이 최소 한 번은 무조건 실행됩니다. 반면 일반 while 루프는 조건이 처음부터 false라면 본문이 단 한 번도 실행되지 않습니다.
기본 문법
do {
// 반복 실행할 코드
} while (조건식);
먼저 do 블록 안의 코드를 실행한 뒤, 그 다음 while의 조건식을 평가합니다. 조건이 true이면 블록을 다시 실행하고, false이면 루프를 종료합니다.
예제
let i = 0;
do {
console.log("Hello");
i = i + 1;
} while (i < 5);
위 예제에서 변수 i는 0으로 초기화되고, 매 반복마다 1씩 증가합니다. 조건식 i < 5가 true인 동안 계속 실행되므로, i가 0, 1, 2, 3, 4일 때 총 5번 출력됩니다.
출력 결과
Hello Hello Hello Hello Hello
while 루프와 do...while 루프의 차이
| 구분 | while 루프 | do...while 루프 |
|---|---|---|
| 조건 검사 시점 | 루프 실행 전 (선검사) | 루프 실행 후 (후검사) |
| 최소 실행 횟수 | 0번 | 1번 |
| 적합한 상황 | 조건에 따라 실행 여부를 먼저 판단해야 할 때 | 코드가 반드시 한 번은 실행되어야 할 때 |
예를 들어 사용자에게 메뉴를 보여주고 선택을 입력받는 프로그램이라면, 메뉴 화면이 최소 한 번은 나타나야 하므로 do...while 루프가 적합합니다. 반면 배열 순회처럼 데이터가 있는지 먼저 확인해야 하는 경우에는 while 루프나 for 루프가 더 자연스럽습니다.