📘 4.3.2 while과의 차이점 - 언제 확인하느냐가 중요해요!
여러분, 안녕하세요.
어릴 때 할머니와 함께 시장에 갔던 기억이 있습니다. 할머니는 두 가지 다른 방식으로 과일 가게를 이용하셨어요.
첫 번째 방식은 멀리서 과일들을 쭉 살펴보시고 "오늘 과일이 신선해 보이나?"를 확인한 후에 가게에 들어가시는 것이었어요. 두 번째 방식은 일단 가게에 들어가서 직접 과일을 만져보고 나서 "이 과일들이 괜찮나?"를 판단하시는 것이었죠.
프로그래밍에서도 이런 두 가지 방식이 있습니다. while
문과 do...while
문이 바로 그것이에요. 둘 다 반복이라는 같은 일을 하지만, 언제 조건을 확인하느냐에 따라 완전히 다른 결과를 만들어냅니다.
오늘은 이 두 방식의 차이점을 자세히 알아보겠습니다.
🧠 새로운 단어들과 친해지기
오늘 만날 개념들을 차근차근 살펴보겠습니다.
단어 | 설명 |
---|---|
사전 조건 확인 | 뭔가를 하기 전에 먼저 "해도 될까?"를 확인하는 방식이에요. |
사후 조건 확인 | 일단 뭔가를 해보고 나서 "계속해도 될까?"를 확인하는 방식이에요. |
실행 보장 | 어떤 상황이든 반드시 한 번은 실행된다는 약속이에요. |
조건 확인 시점 | 언제 조건을 확인하는지를 말해요. |
✨ 핵심 개념 이해하기
while
문과 do...while
문의 차이점을 이해하는 것은 마치 두 가지 다른 생활 습관을 비교하는 것과 같습니다. 둘 다 반복이라는 같은 목적을 가지고 있지만, 언제 조건을 확인하느냐에 따라 완전히 다른 결과를 만들어낼 수 있어요.
마치 도서관 이용하기 같은
제가 자주 가던 동네 도서관에서 본 두 가지 패턴을 생각해보세요.
신중한 사람의 방식 (while
문):
문 밖에서 유리창을 통해 안을 들여다보고, "사람이 너무 많지 않나? 내가 앉을 자리가 있나?"를 먼저 확인한 후에 들어가는 방식입니다.
적극적인 사람의 방식 (do...while
문):
일단 도서관에 들어가서 상황을 직접 파악하고, 그 다음에 "여기서 공부할 만한가?"를 판단하는 방식입니다.
// 신중한 방식 (while)
while (도서관이_적당하다) {
console.log("도서관에 들어가서 공부합니다");
공부하기();
상황_다시_확인하기();
}
// 적극적인 방식 (do...while)
do {
console.log("일단 도서관에 들어가봅시다");
공부하기();
상황_파악하기();
} while (계속_공부할_만하다);
🎯 각각 언제 사용할까요?
while
문을 사용하는 상황:
- 조건이 맞을 때만 실행하고 싶을 때
- 한 번도 실행 안 될 수 있는 상황
- 미리 확인이 가능한 경우
do...while
문을 사용하는 상황:
- 최소 한 번은 꼭 실행해야 할 때
- 실행해봐야 조건을 알 수 있는 경우
- 사용자 입력을 받는 상황
⚙️ 문법 구조 비교
두 반복문의 문법을 나란히 놓고 비교해보면 차이점이 명확해집니다.
// while문: 조건이 앞에 있습니다
while(조건) {
// 조건이 참일 때만 실행됩니다
}
// do...while문: 조건이 뒤에 있습니다
do {
// 무조건 한 번은 실행됩니다
} while(조건);
항목 | while문 | do...while문 |
---|---|---|
조건 확인 시점 | 실행 전 | 실행 후 |
최소 실행 횟수 | 0번 | 1번 |
세미콜론 | 불필요 | 필수 |
조건 위치 | 앞쪽 | 뒤쪽 |
🧪 직접 해보면서 배우기
실제 예시를 통해 두 반복문의 차이점을 명확히 확인해보겠습니다.
🔹 Ex1) 조건이 처음부터 참인 경우
조건이 처음부터 참일 때는 두 반복문이 같은 결과를 보여줍니다.
// 조건이 처음부터 참인 경우 (num = 1, 조건: num <= 3)
console.log("=== 조건이 참인 경우 ===");
// while문으로 1부터 3까지 출력하기
let whileNum = 1;
console.log("while문 시작합니다");
while(whileNum <= 3) { // 조건을 먼저 확인합니다
console.log("while로 출력:", whileNum);
whileNum++;
}
console.log("while문 끝!");
// do...while문으로 1부터 3까지 출력하기
let doWhileNum = 1;
console.log("do...while문 시작합니다");
do { // 일단 먼저 실행합니다
console.log("do...while로 출력:", doWhileNum);
doWhileNum++;
} while(doWhileNum <= 3); // 나중에 조건을 확인합니다
console.log("do...while문 끝!");
// 결과: 둘 다 1, 2, 3을 출력해요 (결과가 같아요)
🔹 Ex2) 조건이 처음부터 거짓인 경우
여기서 진짜 차이점이 드러납니다!
// 조건이 처음부터 거짓인 경우 (num = 10, 조건: num < 5)
console.log("=== 조건이 거짓인 경우 ===");
// while문으로 테스트
let whileFalse = 10;
console.log("while문 시작합니다");
while(whileFalse < 5) { // 조건을 먼저 확인합니다 (거짓!)
console.log("while로 출력:", whileFalse); // 이 줄은 실행되지 않습니다!
whileFalse++;
}
console.log("while문 끝! (아무것도 실행 안 됨)");
// do...while문으로 테스트
let doWhileFalse = 10;
console.log("do...while문 시작합니다");
do { // 일단 먼저 실행합니다
console.log("do...while로 출력:", doWhileFalse); // 이 줄은 한 번 실행됩니다!
doWhileFalse++;
} while(doWhileFalse < 5); // 나중에 조건을 확인합니다 (거짓!)
console.log("do...while문 끝! (한 번은 실행됨)");
// 결과: while은 아무것도 출력 안 함, do...while은 10을 출력해요
🔹 Ex3) 실제 상황 - 메뉴 시스템
// 게임 메뉴 상황을 시뮬레이션해보기
console.log("=== 메뉴 시스템 비교 ===");
let menuChoice = "";
let menuCount = 0;
// while문으로 메뉴 시스템 (문제가 있을 수 있습니다)
while(menuChoice !== "종료" && menuCount < 3) { // 조건을 먼저 확인합니다
if (menuCount === 0) menuChoice = "게임시작";
else if (menuCount === 1) menuChoice = "설정";
else menuChoice = "종료";
console.log("while 메뉴: " + menuChoice);
menuCount++;
}
// 변수 초기화
menuChoice = "";
menuCount = 0;
// do...while문으로 메뉴 시스템 (더 자연스럽습니다)
do { // 일단 메뉴를 보여줍니다
if (menuCount === 0) menuChoice = "게임시작";
else if (menuCount === 1) menuChoice = "설정";
else menuChoice = "종료";
console.log("do...while 메뉴: " + menuChoice);
menuCount++;
} while(menuChoice !== "종료" && menuCount < 3); // 나중에 조건을 확인합니다
// 결과: do...while이 더 자연스러워요 (메뉴는 최소 한 번은 보여줘야 하니까요)
🧠 자주 하는 실수와 주의할 점
두 반복문을 사용할 때 주의해야 할 몇 가지 사항들을 알아보겠습니다.
❌ 실수 1: 세미콜론 빼먹기
// ❌ 세미콜론이 없어서 문법 오류입니다!
do {
console.log("실행 중...");
} while (true) // 세미콜론이 없음!
// ✅ 올바른 방법
do {
console.log("실행 중...");
} while (true); // 세미콜론 필수!
❌ 실수 2: 상황에 맞지 않는 반복문 선택
// ❌ 메뉴에 while 사용 (메뉴가 안 나올 수 있습니다)
let choice = "";
while(choice === "시작") { // 처음에 choice가 ""이라 실행 안됩니다
console.log("메뉴를 선택하세요");
}
// ✅ 메뉴에 do...while 사용
let choice = "";
do {
console.log("메뉴를 선택하세요"); // 최소 한 번은 보여줍니다
choice = "시작"; // 사용자 선택 시뮬레이션
} while(choice !== "종료");
✏️ 직접 해보기 - 쉬운 연습 문제들
배운 내용을 연습해보겠습니다. 마치 요리를 배울 때 재료의 순서가 중요하듯이, 조건을 확인하는 순서도 중요하다는 것을 느껴보세요.
Ex1) 두 반복문의 차이를 확인해보자
// while문으로 테스트 (조건이 거짓인 경우)
let a = 5;
while(a < 5) { // 조건을 먼저 확인합니다 (거짓!)
console.log("A:", a); // 실행되지 않습니다
a++;
}
// do...while문으로 테스트 (조건이 거짓인 경우)
let b = 5;
do { // 일단 먼저 실행합니다
console.log("B:", b); // 한 번 실행됩니다!
b++;
} while(b < 5); // 나중에 조건을 확인합니다 (거짓!)
// 결과: "B: 5"만 출력되고 "A:"는 출력되지 않아요
Ex2) 카운트다운을 두 방식으로 만들어보자
// while문 버전
let count1 = 3;
while(count1 > 0) { // 조건을 먼저 확인합니다
console.log("while 카운트다운:", count1);
count1--;
}
// do...while문 버전
let count2 = 3;
do { // 일단 먼저 실행합니다
console.log("do...while 카운트다운:", count2);
count2--;
} while(count2 > 0); // 나중에 조건을 확인합니다
// 결과: 둘 다 3, 2, 1을 출력해요 (조건이 처음부터 참인 경우)
📚 복습하기 - 지난 시간에 배운 내용도 기억해요!
새로운 것을 배우면서도 이전에 배운 것들을 잊지 않는 것이 중요해요.
🔄 4.3.1 복습: do...while문의 기본 개념
문제: do...while문의 가장 큰 특징을 설명해보세요!
정답과 설명:
- 최소 한 번 실행: 조건이 거짓이어도 반드시 한 번은 실행돼요
- 세미콜론 필수: do...while문 끝에는 반드시 세미콜론을 붙여야 해요!
🔄 4.2.1 복습: while문의 조건 확인 시점
문제: while문과 do...while문에서 조건을 확인하는 시점의 차이점을 설명해보세요!
정답과 설명:
- while문: 실행 전에 조건 확인 → 거짓이면 0번 실행
- do...while문: 실행 후에 조건 확인 → 거짓이어도 1번은 실행
🔄 4.1.1 복습: 반복문 선택 기준
문제: 다음 상황에서 어떤 반복문이 가장 적합한지 말해보세요!
// 상황 1: 1부터 100까지 숫자 출력
// 상황 2: 사용자가 "종료"를 입력할 때까지 메뉴 보여주기
// 상황 3: 파일에 데이터가 있는 동안 읽기
정답과 설명:
- 상황 1:
for
문 (정확한 횟수를 알고 있음) - 상황 2:
do...while
문 (메뉴는 최소 한 번 보여줘야 함) - 상황 3:
while
문 (데이터가 없으면 읽지 않아야 함)
이렇게 지난번에 배운 내용들도 계속 활용하면서 새로운 것을 배우는 거예요! 😊
지금까지 while
문과 do...while
문의 차이점에 대해 함께 알아보았습니다. 두 반복문 모두 소중한 도구이지만, 언제 조건을 확인하느냐에 따라 완전히 다른 결과를 만들어낼 수 있어요.
마치 할머니가 시장에서 과일을 고르실 때 두 가지 다른 방식을 사용하셨듯이, 우리도 상황에 맞는 올바른 반복문을 선택하는 것이 좋은 프로그래밍의 첫걸음입니다.
다음 시간에는 또 다른 흥미로운 자바스크립트 이야기를 함께 나누어보겠습니다. 여러분의 학습 여정이 계속해서 의미 있고 즐거우시길 바라요! 🌟
✅ 학습 완료 체크리스트
이번 시간에 배운 내용들을 모두 이해했는지 확인해보세요!
학습 내용 | 이해했나요? |
---|---|
while과 do...while의 차이점 | ✅ |
조건 확인 시점의 중요성 | ✅ |
상황별 적합한 반복문 선택 | ✅ |
자주 하는 실수들 | ✅ |
실전 예제 이해 | ✅ |
📂 마무리 정보
오늘 배운 4.3.2
내용이 여러분의 자바스크립트 지식에 잘 자리 잡았나요? 다음 시간에는 더 흥미진진한 내용으로 만나요!
기억할 점: 오늘 배운 내용을 꼭 연습해보시고, 궁금한 점이 있으면 언제든 다시 돌아와서 읽어보세요.
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.
'4. 같은 일 반복하기 (반복문) > 4.3 최소 한 번은 실행하기 (do...while)' 카테고리의 다른 글
4.3.1 `do...while`문 - 최소 한 번은 실행하기 (0) | 2025.07.01 |
---|