thejavascript4kids 2025. 7. 1. 02:56

📘 4.3.1 do...while문 - 최소 한 번은 실행하기

여러분, 안녕하세요.

저는 어릴 때 처음 자전거를 탈 때의 일이 생생히 기억납니다. 아버지께서 "자전거를 탈 수 있을까?"라고 물어보시면 저는 "모르겠어요"라고 대답했죠. 그러자 아버지는 "일단 한 번 타보자"라고 하시며 자전거에 올려주셨어요. 그 한 번의 시도가 제가 자전거를 배우는 시작이었습니다.

프로그래밍에서도 이런 상황들이 있습니다. 조건을 먼저 확인하는 것보다 일단 한 번은 해봐야 하는 경우들 말이에요.

지금까지 배운 while문이 "조건을 먼저 확인하고 반복하기"였다면, 오늘 배울 do...while문은 "일단 해보고 나서 결정하기"입니다. 마치 자전거를 처음 탈 때처럼요.

🧠 새로운 단어들과 친해지기

오늘 만날 개념들을 차근차근 살펴보겠습니다.

단어 설명
do...while문 일단 실행하고 나서 조건을 확인하는 반복 명령어예요.
후조건 검사 뭔가를 해본 다음에 "계속할까?"를 확인하는 방식이에요.
최소 실행 조건이 어떻든 상관없이 최소 한 번은 반드시 실행되는 것이에요.
조건 위치 조건문이 코드의 앞에 있는지 뒤에 있는지를 말해요.

✨ do...while문이 뭔지 알아보기

do...while문은 while문의 실용적인 형제라고 할 수 있습니다. 둘 다 조건에 따라 반복하지만, 조건을 확인하는 시점이 완전히 다르거든요.

생각해보세요. 새로운 음식점에 가서 메뉴를 볼 때는 어떻게 하나요? 일단 메뉴판을 보고 난 후에 "더 살펴볼까, 말까?"를 결정하죠. 처음부터 "메뉴가 마음에 들까?"를 확인하고 들어가지는 않아요.

마치 시장에서 장보기 같은

할머니와 함께 시장에 갔던 기억이 납니다. 할머니는 항상 이렇게 하셨어요.

할머니의 장보기 방식 (do...while):

  1. 일단 가게에 들어가신다
  2. 물건을 하나씩 살펴보신다
  3. "더 볼 게 있나?"를 확인하신다
  4. 있으면 계속, 없으면 나가신다
do {
    console.log("일단 가게에 들어가서 물건을 살펴보자");
    물건_살펴보기();
    필요한_것_확인하기();
} while (더_볼_것이_있다);

조심스러운 사람의 방식 (while):

while (들어갈_만한_가게인가) {
    console.log("가게가 괜찮아 보이니까 들어가자");
    물건_살펴보기();
}

🎯 왜 do...while문을 사용할까요?

첫째, 최소 한 번은 실행해야 하는 작업이 있을 때입니다. 메뉴를 보여주거나, 게임을 한 판 하거나, 사용자에게 입력을 받는 상황에서는 일단 한 번은 시작해야 하거든요.

둘째, 사용자와의 상호작용이 필요한 프로그램에서 중요합니다. 사용자의 선택을 받기 전에는 어떤 조건을 확인할 수 없으니까요.

⚙️ 기본 문법 살펴보기

do {
    // 최소 한 번은 실행될 내용
    // 조건을 변화시키는 코드
} while (조건식);

⚠️ 정말 중요한 주의사항: do...while문 끝에는 반드시 세미콜론(;)을 붙여야 합니다!

🧪 직접 해보면서 배우기

실제 상황에서 do...while문이 어떻게 사용되는지 살펴보겠습니다.

🔹 Ex1) 숫자 세기로 기본 원리 이해하기

console.log("🔢 숫자 세기를 시작해요!");

let number = 1;

do {                                                    // 일단 한 번은 실행합니다
    console.log("현재 숫자: " + number);
    number = number + 1;                                // 숫자를 증가시킵니다
} while (number <= 3);                                  // 조건을 나중에 확인합니다

console.log("🎉 숫자 세기 완료!");

🔹 Ex2) while문과 do...while문의 차이점 비교하기

console.log("🧪 while문 vs do...while문 비교 실험");

// while문 테스트
console.log("📊 while문 테스트:");
let whileNumber = 10;

while (whileNumber < 5) {                               // 조건을 먼저 확인합니다
    console.log("while 실행: " + whileNumber);
    whileNumber++;
}
console.log("while문 결과: 한 번도 실행되지 않음");

// do...while문 테스트  
console.log("📊 do...while문 테스트:");
let doWhileNumber = 10;

do {                                                    // 일단 먼저 실행합니다
    console.log("do...while 실행: " + doWhileNumber);
    doWhileNumber++;
} while (doWhileNumber < 5);                            // 나중에 조건을 확인합니다

console.log("do...while문 결과: 한 번은 실행됨");

🔹 Ex3) 간단한 카운트다운 시스템

console.log("🚀 로켓 발사 카운트다운을 시작합니다!");

let countdown = 3;

do {                                                    // 일단 카운트다운을 시작합니다
    console.log("⏰ " + countdown + "초 남았습니다!");

    if (countdown === 1) {
        console.log("   🔥 마지막 1초!");
    }

    countdown = countdown - 1;                          // 시간을 줄입니다

} while (countdown > 0);                                // 0보다 클 때까지 반복합니다

console.log("🚀 로켓 발사 성공!");

🧠 자주 하는 실수와 주의할 점

do...while문을 사용할 때 주의해야 할 몇 가지 사항들을 알아보겠습니다.

❌ 실수 1: 세미콜론 빼먹기

// ❌ 세미콜론이 없어서 문법 오류입니다!
do {
    console.log("실행 중...");
} while (true)  // 세미콜론이 없음!

// ✅ 올바른 방법
do {
    console.log("실행 중...");
} while (true);  // 세미콜론 필수!

❌ 실수 2: 조건을 바꾸는 코드 빼먹기

// ❌ 무한 반복의 위험!
let count = 1;
do {
    console.log(count);
    // count가 변하지 않아서 영원히 반복됩니다!
} while (count <= 3);

// ✅ 안전한 방법
let count = 1;
do {
    console.log(count);
    count++;  // 조건을 변화시키는 코드 추가
} while (count <= 3);

✏️ 직접 해보기 - 쉬운 연습 문제들

배운 내용을 연습해보겠습니다. 마치 요리를 배울 때 일단 해보고 맛을 보는 것처럼, 우리도 코드를 작성해보고 결과를 확인해보겠어요.

Ex1) 1부터 3까지 숫자를 출력해보자

let num = 1;
do {                                                    // 일단 실행합니다
    console.log("숫자: " + num);
    num = num + 1;                                      // 숫자를 증가시킵니다
} while (num <= 3);                                     // 3 이하일 때까지 반복합니다
// 결과: "숫자: 1", "숫자: 2", "숫자: 3"

Ex2) 조건이 거짓이어도 한 번은 실행되는지 확인해보자

let bigNumber = 100;
do {                                                    // 일단 실행합니다
    console.log("실행됨: " + bigNumber);
    bigNumber = bigNumber + 1;
} while (bigNumber < 10);                               // 조건이 거짓이지만 한 번은 실행됩니다
// 결과: "실행됨: 100"이 한 번 나타남 (조건이 거짓이어도 실행됨!)

Ex3) 카운트다운을 do...while로 만들어보자

let timer = 5;
do {                                                    // 일단 카운트다운을 시작합니다
    console.log("카운트다운: " + timer);
    timer = timer - 1;                                  // 시간을 줄입니다
} while (timer > 0);                                    // 0보다 클 때까지 반복합니다
console.log("시간 종료!");
// 결과: 5, 4, 3, 2, 1, "시간 종료!"

📚 복습하기 - 지난 시간에 배운 내용도 기억해요!

새로운 것을 배우면서도 이전에 배운 것들을 잊지 않는 것이 중요해요.

🔄 4.2.2 복습: 무한 반복 방지하기

문제: do...while문에서도 무한 반복을 방지하는 방법을 설명해보세요!

// 안전한 do...while문 작성법
let attempts = 0;
let maxAttempts = 5;

do {
    console.log("시도 중... " + attempts);
    attempts++;  // 반드시 조건을 변화시키는 코드
} while (attempts < maxAttempts);  // 안전장치로 최대 횟수 제한

정답과 설명:

  • 조건 변화: 매 반복마다 조건에 사용되는 변수를 변경해야 해요
  • 안전장치: 최대 반복 횟수를 설정해서 무한 반복 방지해요
  • 세미콜론: do...while문 끝에 반드시 세미콜론 붙이기!

🔄 4.2.1 복습: while문과 do...while문의 차이

문제: 다음 상황에서 while문과 do...while문 중 어느 것이 적합한지 설명해보세요!

// 상황 1: 사용자에게 메뉴를 보여주고 선택받기
// 상황 2: 숫자가 양수인 동안 처리하기

정답과 설명:

  • 상황 1: do...while문이 적합! 메뉴는 최소 한 번은 보여줘야 하니까요
  • 상황 2: while문이 적합! 숫자가 음수면 처리하지 않아야 하니까요

🔄 4.1.1 복습: for문과 다른 반복문들의 차이

문제: for문, while문, do...while문을 언제 사용하는지 정리해보세요!

정답과 설명:

  • for문: 정확한 반복 횟수를 알 때 (1부터 10까지 등)
  • while문: 조건이 만족되는 동안 반복할 때 (조건을 먼저 확인)
  • do...while문: 최소 한 번은 실행해야 할 때 (일단 해보고 판단)

이렇게 지난번에 배운 내용들도 계속 활용하면서 새로운 것을 배우는 거예요! 😊


지금까지 do...while문에 대해 함께 알아보았습니다. 이 반복문은 "일단 해보고 결정하자"는 실용적인 철학을 가진 매우 유용한 도구입니다.

마치 자전거를 처음 탈 때처럼, 때로는 조건을 먼저 확인하는 것보다 일단 해보는 것이 더 나을 때가 있어요. do...while문이 바로 그런 상황을 위한 도구입니다.

다음 시간에는 또 다른 흥미로운 자바스크립트 이야기를 함께 나누어보겠습니다. 여러분의 학습 여정이 계속해서 의미 있고 즐거우시길 바라요! 🌟

✅ 학습 완료 체크리스트

이번 시간에 배운 내용들을 모두 이해했는지 확인해보세요!

학습 내용 이해했나요?
do...while문의 기본 개념
기본 사용법과 문법
while문과의 차이점
자주 하는 실수들
이전 단원 복습 내용

📂 마무리 정보

오늘 배운 4.3.1 내용이 여러분의 자바스크립트 지식에 잘 자리 잡았나요? 다음 시간에는 더 흥미진진한 내용으로 만나요!

기억할 점: 오늘 배운 내용을 꼭 연습해보시고, 궁금한 점이 있으면 언제든 다시 돌아와서 읽어보세요.


🚀 더 체계적인 JavaScript 학습을 원하신다면?
이 포스팅에서 다룬 내용을 실제로 실습해보세요!
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.
📝 실시간 코드 실행 📊 학습 진도 관리 👥 체계적 커리큘럼
📚 171개 체계적 학습레슨 · 📋 855개 4지선다 연습문제 · 🆓 완전 무료 · ⚡ 즉시 시작