3.1.3 또 다른 조건 (else if) - 여러 가지 경우를 모두 챙기는 방법
📘 3.1.3 또 다른 조건 (else if) - 여러 가지 경우를 모두 챙기는 방법
삶에는 단순히 두 개의 갈래로만 나누어지지 않는 순간들이 있습니다. 학교에서 받는 성적도 그렇고, 계절의 변화도 그렇죠. 마치 강물이 여러 갈래로 나뉘어 흘러가듯, 우리의 선택도 때로는 여러 방향으로 갈라집니다.
지금까지 우리는 if와 else로 두 가지 경우를 처리하는 방법을 배웠습니다. 하지만 실제 세상에서는 선택지가 두 개만 있는 경우가 드물어요. 성적도 A, B, C, D, F로 나뉘고, 계절도 봄, 여름, 가을, 겨울로 나뉘잖아요.
오늘은 컴퓨터가 여러 가지 경우들을 차례차례 확인해서 딱 맞는 하나를 선택할 수 있게 도와주는 else if라는 섬세한 도구를 배워보겠습니다.
🧠 새로운 단어들과 친해지기
else if와 관련된 새로운 단어들을 차근차근 알아보겠습니다.
| 단어 | 뜻 |
|---|---|
| else if | "그렇지 않다면 만약에"라는 뜻으로, 첫 번째 조건이 맞지 않을 때 다른 조건을 확인하는 명령어입니다. |
| 조건 사슬 | 여러 개의 조건을 체인처럼 하나씩 연결해서 차례대로 확인하는 방법입니다. |
| 여러 갈래 | 두 개가 아닌 세 개, 네 개, 또는 그 이상의 경우로 나뉘는 상황입니다. |
| 순서대로 확인 | 맨 위 조건부터 아래로 하나씩 차례차례 확인하는 방식입니다. 맞는 조건을 찾으면 나머지는 확인하지 않습니다. |
else if는 "그렇지 않으면 만약에"라는 뜻입니다. 마치 "비가 오면 우산을 가져가고, 그렇지 않으면 만약 바람이 불면 재킷을 입고, 그것도 아니라면 반팔을 입자"라고 말하는 것과 같아요.
✨ else if문이 뭔지 알아보기
else if는 if와 else의 지혜로운 형과 같습니다. 단순히 두 가지 경우만 처리하는 것이 아니라, 세 개, 네 개, 다섯 개 또는 그 이상의 경우들을 모두 품어서 처리할 수 있거든요.
else if의 가장 특별한 점은 위에서부터 차례차례 확인한다는 것입니다. 마치 여러 개의 문이 있는 긴 복도에서 첫 번째 문부터 하나씩 열어보다가, 열리는 첫 번째 문으로 들어가면 나머지 문들은 확인하지 않는 것처럼요.
이런 특별한 성질 때문에 조건의 순서가 정말 중요합니다. 만약 학점을 계산할 때 60점 이상 조건을 맨 위에 두면, 90점을 받은 학생도 D학점을 받게 되는 안타까운 일이 생길 수 있어요. 그래서 항상 높은 기준부터 낮은 기준 순서로 배치해야 합니다.
일상 속 비유: 학교의 현명한 기숙사 배정 시스템
else if문을 더 쉽게 이해하기 위해 '학교의 현명한 기숙사 배정 시스템' 이야기를 들려드릴게요.
우리 학교에는 정말 체계적인 배정 시스템이 있습니다. 새로 입학한 학생이 오면 이 시스템이 학생의 특성을 차례차례 확인해서 딱 맞는 기숙사를 배정해줍니다.
배정 시스템의 세심한 과정:
- "운동을 정말 좋아하는가?" → 체육관 근처 기숙사! ⚽
- "공부를 정말 좋아하는가?" → 도서관 근처 기숙사! 📚
- "음악을 정말 좋아하는가?" → 음악실 근처 기숙사! 🎵
- "그림을 정말 좋아하는가?" → 미술실 근처 기숙사! 🎨
배정 시스템은 첫 번째 질문부터 차례대로 확인합니다. 만약 학생이 운동을 좋아한다면 그 즉시 체육관 근처로 배정하고 끝! 나머지 질문들은 확인하지 않아요.
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("어린이입니다!");
}
복습 해답과 설명:
- 비교 연산자 (2단원):
>,>=,===,!==등을 사용해서 값을 비교할 수 있습니다. - === vs == (2단원):
===는 타입까지 확인하는 엄격한 비교,==는 타입을 자동 변환하는 관대한 비교입니다. - 연결점: 2단원에서 배운 비교 연산자들이 3단원의
else if조건문에서 정말 중요하게 사용됩니다!
우리는 지금까지 else if문을 배워서 여러 가지 경우를 모두 깔끔하게 처리하는 방법을 익혔습니다. else if문은 복잡한 상황도 차례차례 정리해서 딱 맞는 하나를 선택해주는 정말 중요한 도구입니다.
가장 중요한 것은 조건의 순서를 올바르게 배치하는 것입니다. 처음에는 어려울 수 있지만, 계속 연습하다 보면 자연스럽게 사용할 수 있게 될 것입니다. 마치 계절이 자연스럽게 흘러가듯, 조건들도 논리적 순서에 따라 배치하면 아름다운 프로그램이 완성됩니다.
다음 시간에는 또 다른 조건문인 switch에 대해 배워볼 예정입니다. 오늘도 함께 해주셔서 고맙습니다! 🎉
✅ 학습 완료 체크리스트
이번 시간에 배운 내용들을 모두 이해했는지 확인해보세요!
| 학습 내용 | 이해했나요? |
|---|---|
| else if의 기본 개념 | ✅ |
| 기본 사용법과 문법 | ✅ |
| 주요 특징과 차이점 | ✅ |
| 자주 하는 실수들 | ✅ |
| 실전 예제 이해 | ✅ |
| 2단원 복습 내용 | ✅ |
📂 마무리 정보
오늘 배운 3.1.3 내용이 여러분의 자바스크립트 지식 상자에 잘 저장되었나요? 다음 시간에는 더 재미있는 내용으로 만나요!
기억할 점: 오늘 배운 내용을 꼭 연습해보시고, 궁금한 점이 있으면 언제든 다시 돌아와서 읽어보세요.
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.