[JavaScript] while문 vs do-while문 차이점 비교

2025. 8. 6. 09:59·Language/JavaScript
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
저작자표시 비영리 변경금지 (새창열림)

'Language > JavaScript' 카테고리의 다른 글

JavaScript 코딩테스트 대비 정리 (레벨 5)  (2) 2025.08.04
JavaScript 코딩테스트 대비 정리 (레벨 4)  (2) 2025.08.04
JavaScript 코딩테스트 대비 정리 (레벨 3)  (1) 2025.08.04
JavaScript 코딩테스트 대비 정리 (레벨 2)  (2) 2025.08.04
JavaScript 코딩테스트 대비 정리 (레벨 1)  (1) 2025.08.04
'Language/JavaScript' 카테고리의 다른 글
  • JavaScript 코딩테스트 대비 정리 (레벨 5)
  • JavaScript 코딩테스트 대비 정리 (레벨 4)
  • JavaScript 코딩테스트 대비 정리 (레벨 3)
  • JavaScript 코딩테스트 대비 정리 (레벨 2)
Kun Woo Kim
Kun Woo Kim
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, React, TypeScript, Next.js, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.
  • Kun Woo Kim
    WhiteMouseDev
    김건우
  • 깃허브
    포트폴리오
    velog
  • 전체
    오늘
    어제
  • 공지사항

    • [인사말] 이제 티스토리에서도 만나요! WhiteMouse⋯
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 분류 전체보기 (122) N
      • Frontend Development (51)
      • Backend Development (25)
      • Algorithm (33)
        • 백준 (11)
        • 프로그래머스 (17)
        • 알고리즘 (5)
      • Infra (1)
      • 자료구조 (3)
      • Language (6) N
        • JavaScript (6) N
  • 링크

    • Github
    • Portfolio
    • Velog
  • 인기 글

  • 태그

    frontend development
    tailwindcss
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kun Woo Kim
[JavaScript] while문 vs do-while문 차이점 비교
상단으로

티스토리툴바