4.3.1 `do...while`문 - 최소 한 번은 실행하기
📘 4.3.1 do...while문 - 최소 한 번은 실행하기
여러분, 안녕하세요.
저는 어릴 때 처음 자전거를 탈 때의 일이 생생히 기억납니다. 아버지께서 "자전거를 탈 수 있을까?"라고 물어보시면 저는 "모르겠어요"라고 대답했죠. 그러자 아버지는 "일단 한 번 타보자"라고 하시며 자전거에 올려주셨어요. 그 한 번의 시도가 제가 자전거를 배우는 시작이었습니다.
프로그래밍에서도 이런 상황들이 있습니다. 조건을 먼저 확인하는 것보다 일단 한 번은 해봐야 하는 경우들 말이에요.
지금까지 배운 while문이 "조건을 먼저 확인하고 반복하기"였다면, 오늘 배울 do...while문은 "일단 해보고 나서 결정하기"입니다. 마치 자전거를 처음 탈 때처럼요.
🧠 새로운 단어들과 친해지기
오늘 만날 개념들을 차근차근 살펴보겠습니다.
| 단어 | 설명 |
|---|---|
| do...while문 | 일단 실행하고 나서 조건을 확인하는 반복 명령어예요. |
| 후조건 검사 | 뭔가를 해본 다음에 "계속할까?"를 확인하는 방식이에요. |
| 최소 실행 | 조건이 어떻든 상관없이 최소 한 번은 반드시 실행되는 것이에요. |
| 조건 위치 | 조건문이 코드의 앞에 있는지 뒤에 있는지를 말해요. |
✨ do...while문이 뭔지 알아보기
do...while문은 while문의 실용적인 형제라고 할 수 있습니다. 둘 다 조건에 따라 반복하지만, 조건을 확인하는 시점이 완전히 다르거든요.
생각해보세요. 새로운 음식점에 가서 메뉴를 볼 때는 어떻게 하나요? 일단 메뉴판을 보고 난 후에 "더 살펴볼까, 말까?"를 결정하죠. 처음부터 "메뉴가 마음에 들까?"를 확인하고 들어가지는 않아요.
마치 시장에서 장보기 같은
할머니와 함께 시장에 갔던 기억이 납니다. 할머니는 항상 이렇게 하셨어요.
할머니의 장보기 방식 (do...while):
- 일단 가게에 들어가신다
- 물건을 하나씩 살펴보신다
- "더 볼 게 있나?"를 확인하신다
- 있으면 계속, 없으면 나가신다
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 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.