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

3.1.3 또 다른 조건 (else if) - 여러 가지 경우를 모두 챙기는 방법

thejavascript4kids 2025. 6. 30. 04:43

📘 3.1.3 또 다른 조건 (else if) - 여러 가지 경우를 모두 챙기는 방법

삶에는 단순히 두 개의 갈래로만 나누어지지 않는 순간들이 있습니다. 학교에서 받는 성적도 그렇고, 계절의 변화도 그렇죠. 마치 강물이 여러 갈래로 나뉘어 흘러가듯, 우리의 선택도 때로는 여러 방향으로 갈라집니다.

지금까지 우리는 ifelse두 가지 경우를 처리하는 방법을 배웠습니다. 하지만 실제 세상에서는 선택지가 두 개만 있는 경우가 드물어요. 성적도 A, B, C, D, F로 나뉘고, 계절도 봄, 여름, 가을, 겨울로 나뉘잖아요.

오늘은 컴퓨터가 여러 가지 경우들을 차례차례 확인해서 딱 맞는 하나를 선택할 수 있게 도와주는 else if라는 섬세한 도구를 배워보겠습니다.

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

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

단어
else if "그렇지 않다면 만약에"라는 뜻으로, 첫 번째 조건이 맞지 않을 때 다른 조건을 확인하는 명령어입니다.
조건 사슬 여러 개의 조건을 체인처럼 하나씩 연결해서 차례대로 확인하는 방법입니다.
여러 갈래 두 개가 아닌 세 개, 네 개, 또는 그 이상의 경우로 나뉘는 상황입니다.
순서대로 확인 맨 위 조건부터 아래로 하나씩 차례차례 확인하는 방식입니다. 맞는 조건을 찾으면 나머지는 확인하지 않습니다.

else if는 "그렇지 않으면 만약에"라는 뜻입니다. 마치 "비가 오면 우산을 가져가고, 그렇지 않으면 만약 바람이 불면 재킷을 입고, 그것도 아니라면 반팔을 입자"라고 말하는 것과 같아요.

✨ else if문이 뭔지 알아보기

else ififelse지혜로운 형과 같습니다. 단순히 두 가지 경우만 처리하는 것이 아니라, 세 개, 네 개, 다섯 개 또는 그 이상의 경우들을 모두 품어서 처리할 수 있거든요.

else if의 가장 특별한 점은 위에서부터 차례차례 확인한다는 것입니다. 마치 여러 개의 문이 있는 긴 복도에서 첫 번째 문부터 하나씩 열어보다가, 열리는 첫 번째 문으로 들어가면 나머지 문들은 확인하지 않는 것처럼요.

이런 특별한 성질 때문에 조건의 순서가 정말 중요합니다. 만약 학점을 계산할 때 60점 이상 조건을 맨 위에 두면, 90점을 받은 학생도 D학점을 받게 되는 안타까운 일이 생길 수 있어요. 그래서 항상 높은 기준부터 낮은 기준 순서로 배치해야 합니다.

일상 속 비유: 학교의 현명한 기숙사 배정 시스템

else if문을 더 쉽게 이해하기 위해 '학교의 현명한 기숙사 배정 시스템' 이야기를 들려드릴게요.

우리 학교에는 정말 체계적인 배정 시스템이 있습니다. 새로 입학한 학생이 오면 이 시스템이 학생의 특성을 차례차례 확인해서 딱 맞는 기숙사를 배정해줍니다.

배정 시스템의 세심한 과정:

  1. "운동을 정말 좋아하는가?" → 체육관 근처 기숙사! ⚽
  2. "공부를 정말 좋아하는가?" → 도서관 근처 기숙사! 📚
  3. "음악을 정말 좋아하는가?" → 음악실 근처 기숙사! 🎵
  4. "그림을 정말 좋아하는가?" → 미술실 근처 기숙사! 🎨

배정 시스템은 첫 번째 질문부터 차례대로 확인합니다. 만약 학생이 운동을 좋아한다면 그 즉시 체육관 근처로 배정하고 끝! 나머지 질문들은 확인하지 않아요.

if (학생.운동 === "좋아함") {
    console.log("체육관 근처 기숙사!"); // 여기서 끝!
} else if (학생.공부 === "좋아함") {
    console.log("도서관 근처 기숙사!");
} else if (학생.음악 === "좋아함") {
    console.log("음악실 근처 기숙사!");
} else if (학생.그림 === "좋아함") {
    console.log("미술실 근처 기숙사!");
} else {
    console.log("일반 기숙사에 배정할게요!");
}

우리가 만드는 else if문도 이 배정 시스템처럼 순서대로 확인해서 딱 맞는 하나를 선택해줍니다!

🎯 왜 else if문을 사용할까요?

혹시 "그냥 if문을 여러 개 쓰면 안 되나요?"라고 궁금해하시는 분들이 계실까요? else if를 사용하는 이유는 생각보다 깊습니다.

첫 번째 이유효율성 때문입니다. else if는 맞는 조건을 찾는 순간 나머지는 확인하지 않고 바로 끝냅니다. 마치 원하는 물건을 찾으면 다른 상자들은 뒤지지 않는 것처럼요. 하지만 독립적인 여러 if문들은 모든 조건을 다 확인해야 해서 컴퓨터가 더 많은 일을 해야 합니다.

두 번째 이유명확한 의도 전달 때문입니다. else if를 보면 "이 여러 조건들 중에서 딱 하나만 선택한다"는 뜻이 분명해집니다. 마치 메뉴판에서 하나만 고르는 것처럼요.

세 번째 이유관리의 용이성 때문입니다. 관련된 조건들이 한 곳에 모여있어서 나중에 수정하거나 추가할 때 편합니다.

마지막 이유실생활과의 유사성 때문입니다. 우리도 "만약 이것이 안 되면 저것을, 그것도 안 되면 또 다른 것을" 이런 식으로 생각하잖아요.

⚙️ else if 사용법 배우기

else if문의 기본 형태는 우리가 평상시에 말하는 것을 그대로 옮긴 것 같습니다.

if (첫번째_조건) {
    // 첫 번째 조건이 참일 때 할 일
} else if (두번째_조건) {
    // 두 번째 조건이 참일 때 할 일
} else if (세번째_조건) {
    // 세 번째 조건이 참일 때 할 일
} else {
    // 모든 조건이 거짓일 때 할 일
}

중요한 특징들:

  • 위에서부터 차례대로 확인합니다
  • 맞는 조건을 찾으면 그 즉시 실행하고 끝냅니다
  • 나머지 조건들은 확인하지 않습니다
  • 마지막 else는 모든 조건이 맞지 않을 때의 안전망입니다

🧪 직접 해보면서 배우기

이제 실제로 else if문을 사용해서 여러 가지 경우를 처리하는 완전한 프로그램들을 만들어보겠습니다.

🔹 Ex1) 시험 점수를 확인해서 "A학점!", "B학점!", "C학점!", "D학점!", "F학점!" 메시지를 띄워보자

우리의 첫 번째 연습은 시험 점수에 따라서 정확한 학점을 계산하는 완전한 시스템을 만드는 것입니다.

// 학생 시험 점수 설정하기
let studentName = "김수현";      // 학생 이름 상자
let examScore = 87;             // 시험 점수 상자

console.log("=== 🎓 학점 계산 시스템 ===");
console.log(`학생: ${studentName}`);                    // 학생 이름 출력
console.log(`점수: ${examScore}점`);                    // 점수 출력
console.log("학점 기준: A(90+), B(80+), C(70+), D(60+), F(60미만)"); // 기준 안내

console.log("학점을 계산하고 있어요...");                 // 계산 중 메시지

// else if로 점수에 따른 학점 계산 (높은 점수부터 차례대로!)
if (examScore >= 90) {                                  // 90점 이상인가?
    console.log("🏆 A학점!");                           // A학점 발표
    console.log("와! 최고의 성적이에요!");                // 칭찬 메시지
    console.log("정말 훌륭해요! 축하해요! 🎉");          // 축하 메시지
} else if (examScore >= 80) {                           // 80점 이상인가? (이미 90점 미만 확정)
    console.log("⭐ B학점!");                           // B학점 발표
    console.log("우수한 성적이에요!");                   // 칭찬 메시지
    console.log("계속 이렇게 열심히 해주세요! 👍");       // 격려 메시지
} else if (examScore >= 70) {                           // 70점 이상인가? (이미 80점 미만 확정)
    console.log("😊 C학점!");                           // C학점 발표
    console.log("괜찮은 성적이에요!");                   // 격려 메시지
    console.log("조금만 더 노력하면 더 좋아질 거예요!");   // 동기부여
} else if (examScore >= 60) {                           // 60점 이상인가? (이미 70점 미만 확정)
    console.log("😐 D학점!");                           // D학점 발표
    console.log("겨우 합격이에요.");                     // 현실적 평가
    console.log("다음엔 더 열심히 공부해봐요! 📚");       // 조언
} else {                                                // 모든 조건에 맞지 않음 (60점 미만)
    console.log("😞 F학점...");                         // F학점 발표
    console.log("불합격이에요.");                        // 결과 안내
    console.log("재시험을 위해 더 열심히 준비해요! 💪");  // 격려와 조언
}

console.log("학점 계산이 완료되었어요!");                 // 종료 메시지

// 다른 점수로도 테스트해보기
console.log("\n=== 다른 학생 테스트 ===");
let testScore = 95;                     // 최고 점수로 테스트

console.log(`테스트 점수: ${testScore}점`);

if (testScore >= 90) {                  // 95 >= 90 이므로 참(true)
    console.log("🌟 A학점! 완벽해요!");   // 이 부분이 실행됨
} else if (testScore >= 80) {           // 실행되지 않음 (이미 위에서 끝남)
    console.log("B학점!");
} else if (testScore >= 70) {           // 실행되지 않음
    console.log("C학점!");
}

이 예시에서 중요한 점은 조건들이 높은 점수부터 낮은 점수 순으로 배치되어 있다는 것입니다. 87점인 경우 90점 이상은 아니므로 첫 번째 조건을 통과하고, 80점 이상이므로 두 번째 조건에서 B학점으로 딱 맞게 판정됩니다!

🔹 Ex2) 나이를 확인해서 "유아", "어린이", "청소년", "성인" 메시지를 보여주자

이번에는 나이에 따라서 정확한 연령대 구분을 해주는 프로그램을 만들어보겠습니다.

// 사용자 나이 정보 설정하기
let userName = "박지민";         // 사용자 이름 상자
let userAge = 16;               // 사용자 나이 상자

console.log("=== 👤 연령대 확인 시스템 ===");
console.log(`이름: ${userName}`);                        // 이름 출력
console.log(`나이: ${userAge}세`);                       // 나이 출력

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

// else if로 나이에 따른 연령대 구분 (어린 나이부터 차례대로!)
if (userAge < 7) {                                      // 7세 미만인가?
    console.log("🧸 유아예요!");                         // 유아 안내
    console.log("보호자와 함께 다녀야 해요!");             // 주의사항
    console.log("안전하게 잘 자라고 있어요! 🍼");          // 따뜻한 메시지
} else if (userAge < 13) {                              // 13세 미만인가? (이미 7세 이상 확정)
    console.log("👶 어린이예요!");                       // 어린이 안내
    console.log("호기심이 많고 배우는 걸 좋아할 나이예요!"); // 특징 설명
    console.log("신나는 모험을 많이 해봐요! 🎈");          // 활동 추천
} else if (userAge < 18) {                              // 18세 미만인가? (이미 13세 이상 확정)
    console.log("🧑 청소년이에요!");                      // 청소년 안내
    console.log("꿈과 목표를 찾아가는 중요한 시기예요!");   // 의미 설명
    console.log("미래를 위해 열심히 공부해봐요! 📚");       // 격려 메시지
} else {                                                // 모든 조건에 맞지 않음 (18세 이상)
    console.log("👨 성인이에요!");                       // 성인 안내
    console.log("모든 권리와 책임을 가지게 되었어요!");     // 의미 설명
    console.log("멋진 어른으로 살아가세요! ✨");           // 축하 메시지
}

console.log("연령대 확인이 완료되었어요!");               // 종료 메시지

// 경계선 케이스들도 테스트해보기
console.log("\n=== 경계선 테스트 ===");

// 정확히 7세인 경우
let testAge1 = 7;
console.log(`테스트 나이: ${testAge1}세`);

if (testAge1 < 7) {                     // 7 < 7 이므로 거짓(false)
    console.log("유아");
} else if (testAge1 < 13) {             // 7 < 13 이므로 참(true)
    console.log("어린이로 분류됨!");      // 이 부분이 실행됨
}

// 정확히 18세인 경우
let testAge2 = 18;
console.log(`테스트 나이: ${testAge2}세`);

if (testAge2 < 18) {                    // 18 < 18 이므로 거짓(false)
    console.log("청소년");
} else {                                // 이 부분이 실행됨
    console.log("성인으로 분류됨!");
}

이 예시에서는 어린 나이부터 순서대로 조건을 확인합니다. 16세인 지민이는 7세 미만이 아니고, 13세 미만도 아니지만, 18세 미만이므로 세 번째 조건에서 청소년으로 정확히 분류됩니다!

🔹 Ex3) 현재 달을 확인해서 "봄", "여름", "가을", "겨울" 계절 메시지를 띄워보자

마지막으로 현재 달에 따라서 계절을 판단하고 옷차림을 추천하는 프로그램을 만들어보겠습니다.

// 현재 달 정보 설정하기 (1월=1, 12월=12)
let currentMonth = 7;           // 현재 달 상자

console.log("=== 🌤️ 계절 확인 및 옷차림 추천 시스템 ===");
console.log(`현재 달: ${currentMonth}월`);                  // 현재 달 출력

console.log("계절을 확인하고 옷차림을 추천해드릴게요...");    // 시작 메시지

// else if로 달에 따른 계절 구분
if (currentMonth === 12 || currentMonth === 1 || currentMonth === 2) {  // 겨울 (12, 1, 2월)
    console.log("❄️ 겨울이에요!");                          // 겨울 안내
    console.log("정말 추운 계절이에요!");                    // 계절 설명
    console.log("🧥 두꺼운 패딩을 입으세요!");                // 겉옷 추천
    console.log("🧣 목도리와 장갑도 꼭 착용하세요!");          // 액세서리 추천
    console.log("⛄ 눈사람 만들기 재미있는 계절이에요!");      // 활동 추천
} else if (currentMonth >= 3 && currentMonth <= 5) {       // 봄 (3, 4, 5월)
    console.log("🌸 봄이에요!");                            // 봄 안내
    console.log("따뜻하고 새로운 시작의 계절이에요!");         // 계절 설명
    console.log("🧥 가벼운 재킷이나 가디건을 입으세요!");      // 겉옷 추천
    console.log("🌺 꽃구경하기 좋은 계절이에요!");            // 활동 추천
    console.log("🦋 벚꽃 구경 가봐요!");                     // 특별 활동 추천
} else if (currentMonth >= 6 && currentMonth <= 8) {       // 여름 (6, 7, 8월)
    console.log("☀️ 여름이에요!");                          // 여름 안내
    console.log("뜨겁고 신나는 계절이에요!");                 // 계절 설명
    console.log("👕 시원한 반팔과 반바지를 입으세요!");        // 옷차림 추천
    console.log("🕶️ 선글라스와 모자를 착용하세요!");          // 햇빛 차단 용품
    console.log("🏊‍♀️ 수영하기 좋은 계절이에요!");              // 활동 추천
} else if (currentMonth >= 9 && currentMonth <= 11) {      // 가을 (9, 10, 11월)
    console.log("🍂 가을이에요!");                          // 가을 안내
    console.log("선선하고 아름다운 계절이에요!");             // 계절 설명
    console.log("🧥 얇은 점퍼나 니트를 입으세요!");            // 옷차림 추천
    console.log("🍁 단풍구경하기 완벽한 계절이에요!");        // 활동 추천
    console.log("📚 독서하기에도 좋은 계절이에요!");          // 실내 활동 추천
} else {                                                   // 1~12 범위를 벗어난 경우
    console.log("❌ 올바르지 않은 달이에요!");               // 오류 안내
    console.log("1월부터 12월 사이의 값을 입력해주세요!");     // 수정 요청
}

console.log("계절 확인 및 추천이 완료되었어요!");            // 종료 메시지

// 다른 계절로도 테스트해보기
console.log("\n=== 다른 달 테스트 ===");

// 봄 테스트
let springMonth = 4;
console.log(`테스트 달: ${springMonth}월`);

if (springMonth === 12 || springMonth === 1 || springMonth === 2) {  // false
    console.log("겨울");
} else if (springMonth >= 3 && springMonth <= 5) {                  // 4는 3~5 범위이므로 true
    console.log("🌸 봄으로 판정됨!");                                // 이 부분이 실행됨
} else if (springMonth >= 6 && springMonth <= 8) {                  // 실행되지 않음
    console.log("여름");
}

// 잘못된 달 테스트
let wrongMonth = 15;
console.log(`잘못된 달 테스트: ${wrongMonth}월`);

if (wrongMonth >= 1 && wrongMonth <= 12) {  // 15는 1~12 범위에 없으므로 false
    console.log("정상적인 달");
} else {                                     // 이 부분이 실행됨
    console.log("❌ 잘못된 달입니다!");
}

이 예시에서는 복합적인 조건들을 사용해봤습니다. 겨울은 12월, 1월, 2월로 연속되지 않는 달들이라서 ||(또는) 기호를 사용했고, 나머지 계절들은 연속된 달 범위로 처리했습니다. 7월인 경우 겨울이 아니고, 봄(35월)도 아니지만, 여름(68월) 범위에 포함되므로 세 번째 조건에서 여름으로 정확히 판정됩니다!

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

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

첫 번째 단계"몇 가지 경우가 있는지 파악하기"입니다. 학점은 5가지(A,B,C,D,F), 연령대는 4가지(유아,어린이,청소년,성인), 계절은 4가지(봄,여름,가을,겨울) 이런 식으로 경우의 수를 정확히 세어보세요.

두 번째 단계"조건 순서 정하기"입니다. 이게 가장 중요해요! 학점처럼 숫자 범위는 높은 값부터, 나이처럼 순서가 있는 것은 적절한 순서대로 배치합니다.

세 번째 단계"첫 번째 if문 작성하기"입니다. 가장 우선순위가 높거나 가장 높은 기준의 조건부터 시작합니다.

네 번째 단계"else if문들 차례대로 추가하기"입니다. 두 번째, 세 번째 조건들을 순서대로 추가합니다.

다섯 번째 단계"마지막 else 추가하기"입니다. 모든 조건에 맞지 않는 예외 상황이나 가장 낮은 기준을 처리합니다.

마지막 단계"모든 경우 테스트해보기"입니다. 각 조건에 해당하는 값들과 경계선 값들, 그리고 잘못된 값들까지 모두 테스트해서 올바르게 동작하는지 확인합니다.

🧚‍♀️ 이야기로 다시 배우기: 도서관의 사서

지금까지 배운 내용을 따뜻한 이야기로 다시 정리해볼게요.

우리 동네에는 정말 친절한 도서관 사서가 있습니다. 학생들이 책을 빌리러 오면 이 사서는 학생의 학년과 실력을 차례차례 확인해서 딱 맞는 책을 추천해줍니다.

사서의 체계적인 책 추천 과정:

if (학생.학년 >= 6) {                    // 6학년 이상인가?
    console.log("고급 도서를 추천해요!");    // 최고급 도서 추천
    console.log("어려운 내용도 배울 수 있어요!");
} else if (학생.학년 >= 4) {             // 4~5학년인가? (이미 6학년 미만 확정)
    console.log("중급 도서를 추천해요!");    // 중급 도서 추천
    console.log("기본 내용들을 익혀봐요!");
} else if (학생.학년 >= 2) {             // 2~3학년인가? (이미 4학년 미만 확정)
    console.log("기초 도서를 추천해요!");    // 기초 도서 추천
    console.log("쉬운 내용부터 배워요!");
} else {                                // 1학년 (모든 조건에 맞지 않음)
    console.log("그림책을 추천해요!");     // 입문용 도서 추천
    console.log("재미있는 이야기로 시작해요!");
}

사서의 훌륭한 점들:

첫째, 높은 학년부터 차례대로 확인해서 가장 적절한 수준의 책을 추천해줍니다. 6학년 학생에게 기초 도서를 주지 않아요.

둘째, 맞는 조건을 찾으면 그 즉시 추천하고 끝냅니다. 불필요한 확인 작업을 하지 않아서 빠르고 효율적입니다.

셋째, 모든 학년의 학생이 자신에게 딱 맞는 책을 받을 수 있습니다. 빠뜨리는 경우가 없어요.

넷째, 순서가 바뀌면 안 됩니다. 만약 기초 도서 조건을 맨 위에 두면, 6학년 학생도 기초 도서를 받게 되는 문제가 생겨요.

우리가 만드는 else if문도 이 사서처럼 순서대로 체계적으로 확인해서 가장 적절한 선택을 도와줍니다!

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

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

❌ 실수 1: 조건 순서를 거꾸로 해서 엉뚱한 결과 나오기

가장 흔하고 큰 실수는 조건의 순서를 잘못 배치하는 것입니다.

let score = 95;

// 잘못된 순서 (낮은 기준이 먼저 와서 문제 발생!)
if (score >= 60) {                      // 95는 60 이상이므로 여기서 끝!
    console.log("D학점");                // 95점인데 D학점이 나옴 😱
} else if (score >= 70) {               // 실행되지 않음
    console.log("C학점");
} else if (score >= 80) {               // 실행되지 않음
    console.log("B학점");
} else if (score >= 90) {               // 실행되지 않음
    console.log("A학점");                // 95점인데 A학점을 못 받음!
}

// 올바른 순서 (높은 기준부터 차례대로!)
if (score >= 90) {                      // 95는 90 이상이므로 A학점!
    console.log("🏆 A학점!");             // 정확한 결과
} else if (score >= 80) {               // 실행되지 않음 (이미 위에서 끝남)
    console.log("B학점");
} else if (score >= 70) {               // 실행되지 않음
    console.log("C학점");
} else if (score >= 60) {               // 실행되지 않음
    console.log("D학점");
}

기억하세요: 숫자 범위는 높은 값부터 낮은 값 순서로 배치해야 합니다!

❌ 실수 2: 조건이 겹치는 부분 만들기

조건들 사이에 겹치는 구간이 있어서 헷갈리게 만드는 경우도 있습니다.

let age = 30;

// 문제가 있는 조건 (30세가 겹치는 범위!)
if (age >= 20 && age <= 30) {          // 20~30세
    console.log("20대");
} else if (age >= 30 && age <= 40) {   // 30~40세 (30세가 겹침!)
    console.log("30대");
}
// 30세인 사람이 "20대"로 분류되는 문제 발생!

// 올바른 방법 (겹치지 않게 명확히 구분!)
if (age >= 20 && age < 30) {           // 20~29세 (30세 제외)
    console.log("20대");
} else if (age >= 30 && age < 40) {    // 30~39세
    console.log("30대");
} else if (age >= 40 && age < 50) {    // 40~49세
    console.log("40대");
}

// 더 간단한 방법 (else if의 특성 활용!)
if (age < 30) {                        // 30세 미만
    console.log("20대");
} else if (age < 40) {                 // 30세 이상 40세 미만 (이미 30세 이상 확정)
    console.log("30대");
} else if (age < 50) {                 // 40세 이상 50세 미만 (이미 40세 이상 확정)
    console.log("40대");
}

❌ 실수 3: else 없이 모든 경우를 놓치기

예상하지 못한 값이 들어왔을 때 처리하는 방법을 빼먹는 경우가 있습니다.

let dayNumber = 8;  // 잘못된 값이 들어온 경우

// 예외 상황 처리가 없는 위험한 코드
if (dayNumber === 1) {
    console.log("월요일");
} else if (dayNumber === 2) {
    console.log("화요일");
} else if (dayNumber === 3) {
    console.log("수요일");
}
// ... 1~7까지만 처리
// 8이 들어오면 아무것도 출력되지 않아서 사용자가 혼란스러워함!

// 안전한 방법 (else로 예외 상황 처리!)
if (dayNumber === 1) {
    console.log("월요일");
} else if (dayNumber === 2) {
    console.log("화요일");
} else if (dayNumber === 3) {
    console.log("수요일");
} else if (dayNumber === 4) {
    console.log("목요일");
} else if (dayNumber === 5) {
    console.log("금요일");
} else if (dayNumber === 6) {
    console.log("토요일");
} else if (dayNumber === 7) {
    console.log("일요일");
} else {                                // 예외 상황 처리!
    console.log("❌ 잘못된 요일 번호예요!");
    console.log("1~7 사이의 숫자를 입력해주세요!");
}

✏️ 연습 문제들

때로는 이해가 작은 실습들로부터 시작됩니다. 마치 피아노를 배울 때 스케일부터 차근차근 익히듯, 프로그래밍도 작은 문제들을 하나씩 풀어가며 손에 익혀야 합니다. 지금부터 함께 해볼 연습들은 여러분의 마음에 차근차근 새겨질 것입니다.

Ex1) 온도에 따라 "매우 더워요!", "따뜻해요!", "시원해요!", "추워요!" 메시지를 띄워보자

// 현재 온도 설정하기
let temperature = 25;           // 온도 상자

console.log(`현재 온도: ${temperature}도`);         // 온도 확인

// else if로 온도에 따른 메시지 표시 (높은 온도부터!)
if (temperature >= 30) {                          // 30도 이상인가?
    console.log("🔥 매우 더워요!");                 // 매우 더운 경우
    console.log("시원한 곳에서 쉬세요!");           // 조언
} else if (temperature >= 20) {                   // 20도 이상인가? (이미 30도 미만 확정)
    console.log("😊 따뜻해요!");                   // 따뜻한 경우
    console.log("밖에 나가기 좋은 날씨예요!");       // 활동 추천
} else if (temperature >= 10) {                   // 10도 이상인가? (이미 20도 미만 확정)
    console.log("😌 시원해요!");                   // 시원한 경우
    console.log("가벼운 겉옷을 입으세요!");         // 옷차림 조언
} else {                                          // 10도 미만인 경우
    console.log("🥶 추워요!");                     // 추운 경우
    console.log("따뜻하게 입고 나가세요!");         // 방한 조언
}

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

Ex2) 용돈 금액에 따라 "장난감 살 수 있어요!", "과자 살 수 있어요!", "사탕 살 수 있어요!", "더 모아주세요!" 메시지를 보여주자

let myMoney = 800;              // 내가 가진 용돈

console.log(`내 용돈: ${myMoney}원`);              // 용돈 확인

// else if로 용돈에 따른 구매 가능한 것 안내 (비싼 것부터!)
if (myMoney >= 1000) {                            // 1000원 이상인가?
    console.log("🧸 장난감 살 수 있어요!");          // 장난감 구매 가능
    console.log("좋아하는 장난감을 골라보세요!");     // 추천
} else if (myMoney >= 500) {                      // 500원 이상인가? (이미 1000원 미만 확정)
    console.log("🍪 과자 살 수 있어요!");            // 과자 구매 가능
    console.log("맛있는 과자를 찾아보세요!");        // 추천
} else if (myMoney >= 200) {                      // 200원 이상인가? (이미 500원 미만 확정)
    console.log("🍭 사탕 살 수 있어요!");            // 사탕 구매 가능
    console.log("달콤한 사탕을 골라보세요!");        // 추천
} else {                                          // 200원 미만인 경우
    console.log("💰 더 모아주세요!");               // 돈 더 모으기 안내
    console.log("조금만 더 모으면 사탕을 살 수 있어요!"); // 격려
}

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

Ex3) 시간에 따라 "좋은 아침!", "점심시간!", "좋은 오후!", "좋은 저녁!" 메시지를 띄워보자

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

console.log(`현재 시간: ${currentHour}시`);        // 시간 확인

// else if로 시간에 따른 인사말 (하루 순서대로!)
if (currentHour >= 6 && currentHour < 12) {      // 6~11시인가?
    console.log("🌅 좋은 아침!");                  // 아침 인사
    console.log("상쾌한 하루 시작해요!");           // 격려
} else if (currentHour >= 12 && currentHour < 18) { // 12~17시인가?
    console.log("🍽️ 점심시간!");                   // 점심 안내
    console.log("맛있는 점심 드세요!");             // 식사 인사
} else if (currentHour >= 18 && currentHour < 22) { // 18~21시인가?
    console.log("🌆 좋은 저녁!");                  // 저녁 인사
    console.log("하루 수고하셨어요!");              // 위로
} else {                                          // 22시 이후 또는 6시 이전
    console.log("🌙 좋은 밤!");                    // 밤 인사
    console.log("푹 주무세요!");                   // 취침 인사
}

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

🔄 2단원 복습 문제 - 잊지 않도록 다시 한번!

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

복습 문제 1: 비교 연산자 사용하기

// 2단원에서 배운 비교 연산자를 다시 연습해보아요!

let studentScore = 85;           // 학생 점수
let passingScore = 70;           // 합격 점수

console.log("=== 2단원 복습: 비교 연산자 ===");
console.log(`학생 점수: ${studentScore}점`);
console.log(`합격 기준: ${passingScore}점`);

// 2단원에서 배운 비교 연산자들 사용하기
console.log("점수 비교 결과:");
console.log(`${studentScore} > ${passingScore}:`, studentScore > passingScore);       // 크다
console.log(`${studentScore} >= ${passingScore}:`, studentScore >= passingScore);     // 크거나 같다
console.log(`${studentScore} === ${passingScore}:`, studentScore === passingScore);   // 같다 (엄격한 비교)
console.log(`${studentScore} !== ${passingScore}:`, studentScore !== passingScore);   // 다르다 (엄격한 비교)

// 3단원에서 배운 else if와 함께 사용해보기
if (studentScore >= 90) {
    console.log("🏆 A학점! 2단원 비교 연산자 >=를 사용했어요!");
} else if (studentScore >= 80) {
    console.log("⭐ B학점! 2단원 비교 연산자 >=를 사용했어요!");
} else if (studentScore >= passingScore) {
    console.log("✅ 합격! 2단원에서 배운 >= 연산자로 확인했어요!");
} else {
    console.log("❌ 불합격... 2단원 비교 연산자로 확인했어요.");
}

복습 문제 2: === 와 == 차이 다시 확인하기

// 2단원에서 배운 === 와 == 의 중요한 차이를 다시 확인해보아요!

let userAge = "18";              // 문자열 나이 (웹에서 입력받은 경우)
let minimumAge = 18;             // 숫자 최소 나이

console.log("=== 2단원 복습: === vs == ===");
console.log(`사용자 나이: ${userAge} (타입: ${typeof userAge})`);
console.log(`최소 나이: ${minimumAge} (타입: ${typeof minimumAge})`);

// 2단원에서 배운 == (관대한 비교)
console.log("== 비교 결과:", userAge == minimumAge);      // true (자동 변환됨)

// 2단원에서 배운 === (엄격한 비교) 
console.log("=== 비교 결과:", userAge === minimumAge);   // false (타입이 다름)

// 3단원 else if에서 안전하게 사용하는 방법
let ageAsNumber = Number(userAge);  // 2단원에서 배운 타입 변환

if (ageAsNumber >= 19) {
    console.log("성인입니다!");
} else if (ageAsNumber >= 13) {
    console.log("청소년입니다! (2단원 타입 변환 + 3단원 else if 활용)");
} else {
    console.log("어린이입니다!");
}

복습 해답과 설명:

  1. 비교 연산자 (2단원): >, >=, ===, !== 등을 사용해서 값을 비교할 수 있습니다.
  2. === vs == (2단원): ===는 타입까지 확인하는 엄격한 비교, ==는 타입을 자동 변환하는 관대한 비교입니다.
  3. 연결점: 2단원에서 배운 비교 연산자들이 3단원의 else if 조건문에서 정말 중요하게 사용됩니다!

우리는 지금까지 else if문을 배워서 여러 가지 경우를 모두 깔끔하게 처리하는 방법을 익혔습니다. else if문은 복잡한 상황도 차례차례 정리해서 딱 맞는 하나를 선택해주는 정말 중요한 도구입니다.

가장 중요한 것은 조건의 순서를 올바르게 배치하는 것입니다. 처음에는 어려울 수 있지만, 계속 연습하다 보면 자연스럽게 사용할 수 있게 될 것입니다. 마치 계절이 자연스럽게 흘러가듯, 조건들도 논리적 순서에 따라 배치하면 아름다운 프로그램이 완성됩니다.

다음 시간에는 또 다른 조건문인 switch에 대해 배워볼 예정입니다. 오늘도 함께 해주셔서 고맙습니다! 🎉

✅ 학습 완료 체크리스트

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

학습 내용 이해했나요?
else if의 기본 개념
기본 사용법과 문법
주요 특징과 차이점
자주 하는 실수들
실전 예제 이해
2단원 복습 내용

📂 마무리 정보

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

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


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