3. 선택하고 결정하기 (조건문)/3.1 만약에... 라면 (if, else if, else)

3.1.2 아니라면 (else) - 모든 상황을 빠뜨리지 않는 방법

thejavascript4kids 2025. 6. 30. 04:41

📘 3.1.2 아니라면 (else) - 모든 상황을 빠뜨리지 않는 방법

어떤 사람에게는 선택이라는 것이 때로는 당연하다. 비가 오면 우산을 들고, 해가 뜨면 선글라스를 쓰고. 하지만 컴퓨터에게는 모든 가능성을 미리 알려주어야 한다는 것, 여러분은 아시나요?

지난 시간, 우리는 if라는 도구로 컴퓨터에게 "만약에"라는 생각을 가르쳐주었습니다. 그런데 실제 세상에서는 어떤가요? 우리는 늘 "만약에 비가 오면 우산을 가져가고, 그렇지 않다면 가볍게 나선다"고 생각하죠. 오늘은 바로 그 "그렇지 않다면"을 컴퓨터에게 가르쳐주는 else라는 따뜻한 도구를 배워보겠습니다.

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

else와 관련된 새로운 단어들을 차근차근 알아보겠습니다.

단어
else "아니라면", "그렇지 않으면"을 뜻하는 컴퓨터 언어입니다. 마치 "숙제가 끝나면 놀고, 아니라면 계속하자"고 말할 때처럼요.
if-else문 if와 else를 함께 사용하는 완전한 문장입니다. 모든 경우의 수를 놓치지 않고 처리할 수 있어요.
두 가지 경우 하나의 조건으로 나누어지는 두 개의 상황입니다. 마치 갈림길에서 왼쪽이냐 오른쪽이냐 선택하는 것처럼요.
대안 첫 번째 방법이 맞지 않을 때 사용할 수 있는 다른 방법입니다. 백업 계획이라고도 할 수 있어요.

else는 영어로 "그렇지 않으면"이라는 뜻입니다. 우리가 일상에서 "날씨가 좋으면 산책하고, 그렇지 않으면 집에서 책을 읽자"라고 말하는 것처럼, 컴퓨터에게도 같은 방식으로 이야기할 수 있습니다.

✨ else문이 뭔지 알아보기

elseif의 가장 든든한 동반자입니다. if가 "만약에"라는 첫 번째 가능성을 담당한다면, else는 "그게 아니라면"이라는 나머지 모든 가능성을 품어줍니다.

if-else문의 가장 특별한 점은 둘 중 하나는 반드시 실행된다는 것입니다. 마치 동전을 던지면 앞면이 나오거나 뒷면이 나오거나, 둘 중 하나는 반드시 나타나는 것처럼요. 조건이 참이면 if 부분이 실행되고, 거짓이면 else 부분이 실행됩니다.

이런 확실함 덕분에 if-else문을 사용하면 더 안전한 프로그램을 만들 수 있습니다. 사용자가 어떤 상황에 놓여있어도 적절한 안내를 받을 수 있거든요. 마치 친절한 안내원이 어떤 질문을 받아도 항상 답변을 준비하고 있는 것처럼요.

일상 속 비유: 현명한 신호등 이야기

if-else문을 더 쉽게 이해하기 위해 '현명한 신호등' 이야기를 들려드릴게요.

여러분이 매일 마주치는 신호등을 생각해보세요. 이 신호등은 참으로 명확합니다. 두 가지 상태만이 존재하죠.

신호등의 판단:

  • 파란불이면: "건너가세요, 안전합니다." 🟢
  • 파란불이 아니라면: "기다려주세요, 위험할 수 있어요." 🔴

여기서 중요한 것은 신호등에게 애매한 순간이 없다는 점입니다. 파란불이 아니면 자동으로 "기다려야 할 때"가 되는 거죠.

if (신호등이_파란불이다) {
    사람들이_길을_건넌다(); // 파란불일 때만 실행
} else {
    사람들이_기다린다();     // 파란불이 아닐 때 자동으로 실행
}

우리가 만드는 if-else문도 이 현명한 신호등처럼 명확하고 안전한 판단을 내릴 수 있게 도와줍니다.

🎯 왜 else문을 사용할까요?

혹시 "그냥 if문만 써도 되는 거 아니야?"라고 생각하시는 분들이 계실까요? else문을 사용하는 이유는 생각보다 깊이 있습니다.

첫 번째 이유완전성 때문입니다. if문만 사용한다면, 조건에 맞지 않는 사람들은 아무런 안내도 받지 못할 수 있어요. 하지만 else를 사용하면 모든 사람이 각자에게 맞는 안내를 받게 됩니다.

두 번째 이유안전성 때문입니다. 예상하지 못한 상황이 발생해도 프로그램이 당황하지 않고 적절히 대응할 수 있어요. 마치 비상계획을 미리 세워두는 것과 같습니다.

세 번째 이유배려심 때문입니다. 게임에서 실패했을 때도 격려의 메시지와 함께 다시 시도할 방법을 알려주는 것처럼, 어떤 상황에서도 사용자를 홀로 두지 않습니다.

마지막으로 실수 예방 때문입니다. 개발자가 깜빡 놓칠 수 있는 경우들을 미리 막아주는 안전망 역할을 해줍니다.

⚙️ if-else 사용법 배우기

if-else문의 기본 형태는 우리가 평상시에 사용하는 언어와 매우 비슷합니다.

if (확인할조건) {
    // 조건이 참일 때 할 일
} else {
    // 조건이 거짓일 때 할 일
}

각 부분의 의미:

  • if: "만약에"라는 뜻
  • (확인할조건): 컴퓨터가 확인해볼 내용
  • 첫 번째 {}: 조건이 참일 때 실행할 명령어들
  • else: "그렇지 않다면"이라는 뜻
  • 두 번째 {}: 조건이 거짓일 때 실행할 명령어들

중요한 특징:

  • 둘 중 정확히 하나만 실행됩니다
  • 조건이 참이면 if 부분만, 거짓이면 else 부분만 실행됩니다
  • 놓치는 경우가 없습니다!

🧪 직접 해보면서 배우기

이제 실제로 if-else문을 사용해서 완전한 프로그램들을 만들어보겠습니다.

🔹 Ex1) 나이를 확인해서 "성인이에요!" 또는 "미성년자에요!" 메시지를 띄워보자

우리의 첫 번째 연습은 나이를 확인해서 성인과 미성년자를 구분하는 완전한 프로그램을 만드는 것입니다.

// 사용자 정보 설정하기
let userName = "김민수";        // 이름을 저장하는 상자
let userAge = 16;              // 나이를 저장하는 상자

console.log("=== 👤 나이 확인 시스템 ===");
console.log("안녕하세요, " + userName + "님!");               // 인사말 출력
console.log(userName + "님의 나이는 " + userAge + "세네요.");  // 나이 확인

console.log("성인인지 확인해보고 있어요...");             // 확인 중 메시지

// if-else로 나이 확인하기 (모든 경우 처리!)
if (userAge >= 18) {                                    // 만약 나이가 18세 이상이라면
    console.log("🎉 성인이에요!");                       // 성인 확인 메시지
    console.log("✅ 모든 서비스를 이용할 수 있어요!");      // 성인 혜택 안내
    console.log("🛒 온라인 쇼핑도 가능해요!");            // 추가 서비스 안내
} else {                                                // 아니라면 (18세 미만이라면)
    console.log("👨‍👩‍👧‍👦 미성년자에요!");                   // 미성년자 확인 메시지
    console.log("🔒 일부 서비스는 보호자 동의가 필요해요."); // 제한 사항 안내
    console.log("📚 학습 콘텐츠를 이용해보세요!");          // 대안 추천
}

console.log("확인이 완료되었어요!");                      // 프로그램 종료 메시지

// 다른 사람으로도 테스트해보기
console.log("\n=== 다른 사용자 테스트 ===");
let adultName = "이영희";        // 성인 사용자 이름
let adultAge = 25;              // 성인 나이

console.log(adultName + "님의 나이: " + adultAge + "세");

if (adultAge >= 18) {           // 25 >= 18 이므로 참(true)
    console.log("✅ 성인 확인 완료!");
} else {                        // 이 부분은 실행되지 않음
    console.log("미성년자입니다.");
}

이 예시에서는 16세인 민수는 미성년자 메시지를 받고, 25세인 영희는 성인 메시지를 받습니다. 어떤 나이가 주어져도 빠뜨리는 경우 없이 적절한 안내를 받을 수 있어요!

🔹 Ex2) 시험 점수를 확인해서 "합격!" 또는 "불합격이지만 재시험 기회가 있어요!" 메시지를 보여주자

이번에는 시험 결과를 확인해서 모든 경우에 따뜻한 안내를 해주는 프로그램을 만들어보겠습니다.

// 시험 정보 설정하기
let studentName = "박수빈";      // 학생 이름 상자
let examScore = 45;             // 시험 점수 상자
let passingScore = 60;          // 합격 기준 점수 상자

console.log("=== 🎓 시험 결과 발표 ===");
console.log("응시자: " + studentName);                          // 응시자 이름 출력
console.log("획득 점수: " + examScore + "점");                  // 실제 점수 출력
console.log("합격 기준: " + passingScore + "점 이상");          // 합격 기준 안내

console.log("결과를 확인하고 있어요...");                        // 확인 중 메시지

// if-else로 합격 여부 완전히 처리하기
if (examScore >= passingScore) {                               // 합격 조건 확인
    console.log("🎊 축하해요! 시험에 합격하셨어요!");            // 합격 축하 메시지
    console.log("✅ " + passingScore + "점 이상 달성!");         // 기준 달성 확인
    console.log("📜 자격증이 발급될 예정이에요.");               // 자격증 발급 안내
    console.log("🚀 다음 단계로 진급할 수 있어요!");             // 다음 단계 안내
} else {                                                       // 불합격인 경우 (빠뜨리지 않고 처리!)
    let neededScore = passingScore - examScore;                // 부족한 점수 계산
    console.log("😔 아쉽게도 불합격입니다.");                   // 불합격 알림
    console.log("💪 하지만 포기하지 마세요!");                  // 격려 메시지
    console.log("📊 " + neededScore + "점만 더 올리면 합격이에요!"); // 구체적 목표 제시
    console.log("📚 재시험 기회가 주어집니다!");                // 재시험 기회 안내
    console.log("🎯 다음엔 꼭 합격하실 거예요!");               // 응원 메시지
}

console.log("시험 결과 처리가 완료되었어요!");                   // 종료 메시지

// 합격하는 경우도 테스트해보기
console.log("\n=== 합격 케이스 테스트 ===");
let passStudent = "김민지";       // 합격 학생 이름
let passScore = 78;             // 합격 점수

console.log(passStudent + " 학생의 점수: " + passScore + "점");

if (passScore >= passingScore) {   // 78 >= 60 이므로 참(true)
    console.log("🎉 합격! 축하해요!");
} else {                          // 이 부분은 실행되지 않음
    console.log("불합격입니다.");
}

이 예시에서는 45점인 수빈이가 불합격이더라도 따뜻한 격려와 구체적인 안내를 받게 됩니다. 78점인 민지는 합격 축하를 받고요. 어떤 점수든 적절한 반응을 받을 수 있습니다!

🔹 Ex3) 날씨를 확인해서 "우산 챙기세요!" 또는 "좋은 날씨네요!" 메시지를 띄워보자

마지막으로 날씨에 따라서 완전한 옷차림 가이드를 제공하는 프로그램을 만들어보겠습니다.

// 날씨 정보 설정하기
let isRaining = true;           // 비가 오는지 확인하는 상자 (참/거짓)
let currentWeather = "비";       // 현재 날씨 설명

console.log("=== 🌤️ 오늘의 날씨 가이드 ===");
console.log("현재 날씨: " + currentWeather);                    // 날씨 상태 출력
console.log("비가 오고 있나요? " + (isRaining ? "예" : "아니오")); // 비 여부 확인

console.log("옷차림을 추천해드릴게요...");                       // 추천 시작 메시지

// if-else로 날씨에 따른 완전한 가이드 제공
if (isRaining) {                                               // 비가 오는 경우
    console.log("☔ 비 오는 날 완벽 가이드!");                   // 비오는 날 제목
    console.log("🧥 방수 재킷을 입으세요!");                    // 옷차림 추천
    console.log("☂️ 우산을 꼭 챙기세요!");                      // 필수 준비물
    console.log("👢 미끄럽지 않은 신발이 좋아요!");              // 신발 추천
    console.log("💧 물웅덩이를 조심하며 걸으세요!");             // 주의사항
    console.log("🏠 가능하면 실내 활동을 추천해요!");             // 활동 추천
} else {                                                       // 비가 오지 않는 경우 (빠뜨리지 않고 처리!)
    console.log("☀️ 맑은 날 완벽 가이드!");                    // 맑은 날 제목
    console.log("👕 가볍고 편안한 옷차림이 좋아요!");            // 옷차림 추천
    console.log("🕶️ 햇빛이 강할 수 있으니 선글라스 준비!");      // 선글라스 추천
    console.log("🧴 자외선 차단제를 발라주세요!");               // 피부 보호
    console.log("🌳 야외 활동하기 좋은 날씨예요!");              // 활동 추천
    console.log("🌈 즐거운 하루 보내세요!");                   // 긍정적 마무리
}

console.log("날씨 가이드가 완료되었어요!");                      // 종료 메시지

// 맑은 날로도 테스트해보기
console.log("\n=== 맑은 날 테스트 ===");
let isSunny = false;           // 비가 오지 않는 상황 (맑은 날)

console.log("비 여부: " + (isSunny ? "비 옴" : "맑음"));

if (isSunny) {                 // false이므로 이 부분은 실행되지 않음
    console.log("비 오는 날 가이드");
} else {                       // 이 부분이 실행됨
    console.log("🌞 맑은 날이에요! 신나는 하루 보내세요!");
}

이 예시에서는 비가 와도, 날이 좋아도 모든 상황에 맞는 완벽한 가이드를 받을 수 있습니다. 어떤 날씨든 빠뜨리지 않고 처리해주고 있어요!

🔄 if-else 사용하는 순서 정리하기

지금까지 배운 if-else문 사용 과정을 차근차근 정리해보겠습니다.

1단계: 어떤 두 가지 경우가 있는지 파악하기

  • 성인/미성년자, 합격/불합격, 비/맑음처럼 서로 반대되는 두 상황을 찾아보세요.

2단계: 경계선 정하기

  • 두 경우를 나누는 기준을 명확히 정해요. "18세 이상인가?", "60점 이상인가?", "비가 오는가?" 같은 명확한 기준을 만들어요.

3단계: 첫 번째 경우의 할 일 정하기

  • 조건이 참일 때 컴퓨터가 무엇을 해야 할지 if 부분에 차례대로 써요.

4단계: 두 번째 경우의 할 일 정하기

  • 조건이 거짓일 때의 대안을 else 부분에 써요. 이때 첫 번째 경우만큼 친절하고 자세하게 써주는 것이 좋아요.

5단계: 두 경우 모두 테스트해보기

  • 조건이 참인 값과 거짓인 값을 모두 넣어서 원하는 대로 동작하는지 확인해봐요.

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

if-else문을 사용할 때 자주 실수하는 부분들을 미리 알아두면 더 쉽게 코딩할 수 있어요.

❌ 실수 1: else 없이 if만 써서 일부 경우 빼먹기

가장 흔한 실수는 else를 빼먹어서 일부 사람들이 아무런 안내도 받지 못하는 거예요.

let score = 45;

// 불완전한 방법 (불합격자가 빼먹어짐!)
if (score >= 60) {                      // 합격자만 처리됨
    console.log("합격이에요!");
}
// 45점인 사람은 아무 메시지도 못 받음! 😢

console.log("처리 완료!");
// 사용자는 자신이 합격인지 불합격인지 모름

// 완전한 방법 (모든 경우 처리!)
if (score >= 60) {                      // 합격인 경우
    console.log("🎉 합격이에요!");
} else {                                // 불합격인 경우도 챙김!
    console.log("😊 불합격이지만 재시험 기회가 있어요!");
}
console.log("결과 확인 완료!");

항상 "다른 경우는 어떻게 해야 할까?"를 생각해보는 습관을 기르세요!

❌ 실수 2: 같은 조건을 두 번 확인해서 비효율적으로 만들기

같은 조건을 여러 번 확인하는 것은 컴퓨터에게 같은 일을 두 번 시키는 것입니다.

let age = 16;

// 비효율적인 방법 (같은 조건을 두 번 확인!)
if (age >= 18) {                        // 첫 번째 확인
    console.log("성인이에요!");
}

if (age < 18) {                         // 두 번째 확인 (불필요함!)
    console.log("미성년자에요!");
}

// 효율적인 방법 (한 번만 확인!)
if (age >= 18) {                        // 한 번만 확인
    console.log("성인이에요!");
} else {                                // 자동으로 age < 18인 경우
    console.log("미성년자에요!");
}

if-else를 사용하면 첫 번째 조건이 거짓일 때 자동으로 else 부분이 실행되니까 따로 조건을 확인할 필요가 없어요!

❌ 실수 3: else 부분에서 또 조건 확인하기

이미 else 부분에 있다는 것은 if 조건이 거짓이라는 뜻인데, 또 조건을 확인하는 경우가 있어요.

let temperature = 10;

// 불필요한 재확인 (else에서 또 조건 확인!)
if (temperature >= 20) {
    console.log("따뜻해요!");
} else {
    if (temperature < 20) {             // 불필요! 이미 < 20이 확실함
        console.log("쌀쌀해요!");
    }
}

// 간단하고 명확한 방법
if (temperature >= 20) {
    console.log("따뜻해요!");
} else {                                // 이미 < 20이 확실하니까 바로 실행
    console.log("쌀쌀해요!");
}

✅ 학습 완료 체크리스트

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

학습 내용 이해했나요?
else문의 기본 개념
if-else 사용법과 문법
모든 경우 처리의 중요성
자주 하는 실수들
실전 예제 이해

🎯 연습 문제들

때로는 간단한 연습이 복잡한 설명보다 더 많은 것을 가르쳐줍니다. 마치 피아노를 배울 때 매일 조금씩 손가락을 움직여야 하는 것처럼, 코딩도 작은 문제들을 하나씩 풀어가며 익숙해지는 것이 좋습니다. 지금부터 함께 풀어볼 문제들은 여러분의 마음에 차근차근 쌓여갈 것입니다.

기본 문제 1. 용돈이 충분하면 "사탕 살 수 있어요!", 부족하면 "용돈을 더 모아주세요!" 메시지를 띄워보자

// 용돈과 사탕 가격 설정하기
let myMoney = 500;              // 내가 가진 용돈
let candyPrice = 300;           // 사탕 가격

console.log("내 용돈: " + myMoney + "원");           // 용돈 확인
console.log("사탕 가격: " + candyPrice + "원");      // 사탕 가격 확인

// if-else로 구매 가능 여부 확인하기
if (myMoney >= candyPrice) {                   // 용돈이 충분한 경우
    console.log("🍭 사탕 살 수 있어요!");        // 구매 가능 메시지
    console.log("맛있게 드세요!");              // 추가 인사
} else {                                       // 용돈이 부족한 경우
    let neededMoney = candyPrice - myMoney;    // 부족한 금액 계산
    console.log("💰 용돈을 더 모아주세요!");     // 부족 알림
    console.log(neededMoney + "원만 더 있으면 살 수 있어요!"); // 구체적 목표
}

console.log("확인 완료!");                     // 종료 메시지

기본 문제 2. 숙제를 다 했으면 "게임 시간!", 안 했으면 "숙제부터 하세요!" 메시지를 보여주자

let homeworkDone = false;       // 숙제 완료 여부 (참/거짓)

console.log("숙제 완료 여부: " + (homeworkDone ? "완료" : "미완료")); // 상태 확인

// if-else로 활동 안내하기  
if (homeworkDone) {                            // 숙제를 완료한 경우
    console.log("🎮 게임 시간!");               // 게임 허가
    console.log("열심히 한 당신에게 휴식을!");   // 격려 메시지
} else {                                       // 숙제를 안 한 경우
    console.log("📚 숙제부터 하세요!");          // 숙제 독촉
    console.log("숙제 끝나면 마음껏 놀 수 있어요!"); // 동기부여
}

console.log("활동 안내 완료!");                 // 종료 메시지

기본 문제 3. 시간이 12시면 "점심시간!", 아니면 "아직 점심시간이 아니에요!" 메시지를 띄워보자

let currentHour = 14;           // 현재 시간 (시)

console.log("현재 시간: " + currentHour + "시");             // 현재 시간 확인

// if-else로 점심시간 여부 확인하기
if (currentHour === 12) {                              // 12시인 경우
    console.log("🍽️ 점심시간!");                       // 점심시간 알림
    console.log("맛있는 점심 드세요!");                  // 식사 인사
} else {                                               // 12시가 아닌 경우
    console.log("⏰ 아직 점심시간이 아니에요!");          // 아직 아님 알림
    console.log("조금 더 기다려주세요!");                // 기다림 요청
}

console.log("시간 확인 완료!");                         // 종료 메시지

🔄 2단원 복습하기

3단원을 차근차근 공부했으니, 2단원에서 배운 중요한 내용들을 복습해볼까요?

복습 문제 1. 비교 연산자 기억하기 (2단원 복습)

다음 비교 연산자들의 결과를 예측해보세요.

let score1 = 85;
let score2 = 85;
let score3 = "85";

console.log(score1 === score2);    // ?
console.log(score1 === score3);    // ?
console.log(score1 >= 80);         // ?

정답:

  • score1 === score2: true (같은 숫자 85)
  • score1 === score3: false (숫자 85와 문자열 "85"는 다름)
  • score1 >= 80: true (85는 80보다 크거나 같음)

해설:
2단원에서 배웠듯이 ===는 엄격한 비교로 값과 타입이 모두 같아야 true가 됩니다. 숫자와 문자열은 다른 타입이므로 false입니다.

복습 문제 2. 논리 연산자 기억하기 (2단원 복습)

다음 논리 연산자의 결과를 예측해보세요.

let isWeekend = true;
let isRaining = false;

console.log(isWeekend && isRaining);    // ?
console.log(isWeekend || isRaining);    // ?
console.log(!isRaining);                // ?

정답:

  • isWeekend && isRaining: false (주말이지만 비가 안 와서)
  • isWeekend || isRaining: true (주말이거나 비가 오면 참이니까)
  • !isRaining: true (비가 안 오는 것의 반대는 참)

해설:
2단원에서 배웠듯이 &&는 둘 다 참일 때만 참, ||는 둘 중 하나라도 참이면 참, !는 반대 값이 됩니다.

우리는 지금까지 else문을 배워서 모든 상황을 빠뜨리지 않는 완전한 프로그램을 만드는 방법을 익혔습니다. if-else문은 컴퓨터가 공정하고 친절하게 모든 사용자를 대할 수 있게 해주는 정말 중요한 도구입니다.

처음에는 어려울 수 있지만, 계속 연습하다 보면 자연스럽게 사용할 수 있게 될 것입니다. 마치 자전거 타기를 배울 때처럼, 처음엔 넘어지더라도 결국에는 균형을 잡을 수 있게 되는 것처럼요.

다음 시간에는 더 많은 경우를 처리할 수 있는 else if에 대해 배워볼 예정입니다. 오늘도 함께 해주셔서 고맙습니다! 🎉

📂 마무리 정보

오늘 배운 3.1.2 내용이 여러분의 자바스크립트 지식 상자에 잘 저장되었나요? 다음 시간에는 더 재미있는 내용으로 만나요!

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


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