newclass
2025. 3. 30. 19:06
JavaScript에서는 코드의 흐름을 제어하기 위한 다양한 제어문과 반복문을 제공합니다. 이러한 구문들은 조건에 따라 코드를 실행하거나 반복적으로 실행하는 데 사용됩니다.
조건문
조건문은 특정 조건이 참인지 거짓인지에 따라 다른 코드 블록을 실행하는 구문입니다.
if, else if, else 문
가장 기본적인 조건문으로, 조건에 따라 코드 블록을 실행할지 결정합니다.
기본 구문:
if (조건1) {
// 조건1이 참일 때 실행될 코드
} else if (조건2) {
// 조건1이 거짓이고 조건2가 참일 때 실행될 코드
} else {
// 모든 조건이 거짓일 때 실행될 코드
}
예제:
// 기본 if-else 사용법
const age = 25;
if (age < 13) {
console.log("어린이입니다.");
} else if (age < 20) {
console.log("청소년입니다.");
} else {
console.log("성인입니다.");
}
// 출력: "성인입니다."
// 중첩된 if문
const score = 85;
let grade;
if (score >= 90) {
grade = "A";
} else {
if (score >= 80) {
grade = "B";
} else {
if (score >= 70) {
grade = "C";
} else {
grade = "D";
}
}
}
console.log(`점수: ${score}, 등급: ${grade}`);
// 출력: "점수: 85, 등급: B"
// 논리 연산자와 함께 사용
const isWeekend = true;
const isHoliday = false;
if (isWeekend || isHoliday) {
console.log("오늘은 쉬는 날입니다.");
}
// 출력: "오늘은 쉬는 날입니다."
// 블록이 한 줄일 경우 중괄호 생략 가능 (추천하지 않음)
if (age > 18) console.log("성인입니다.");
조건부 연산자 (삼항 연산자):
간단한 조건문은 삼항 연산자로 더 간결하게 표현할 수 있습니다.
const age = 25;
const status = age >= 18 ? "성인" : "미성년자";
console.log(status); // "성인"
// 중첩 삼항 연산자
const score = 85;
const grade = score >= 90 ? "A" :
score >= 80 ? "B" :
score >= 70 ? "C" : "D";
console.log(grade); // "B"
switch 문
여러 가능한 값들에 대해 서로 다른 동작을 수행해야 할 때 유용합니다.
기본 구문:
switch (표현식) {
case 값1:
// 표현식이 값1과 일치할 때 실행될 코드
break;
case 값2:
// 표현식이 값2와 일치할 때 실행될 코드
break;
// ...
default:
// 표현식이 어떤 case와도 일치하지 않을 때 실행될 코드
}
예제:
// 기본 switch 사용법
const day = 3;
let dayName;
switch (day) {
case 1:
dayName = "월요일";
break;
case 2:
dayName = "화요일";
break;
case 3:
dayName = "수요일";
break;
case 4:
dayName = "목요일";
break;
case 5:
dayName = "금요일";
break;
case 6:
dayName = "토요일";
break;
case 0:
dayName = "일요일";
break;
default:
dayName = "유효하지 않은 날짜";
}
console.log(dayName); // "수요일"
// break 문 생략 - 다음 case로 코드 실행이 계속 진행됨 (fall-through)
const grade = "B";
let feedback;
switch (grade) {
case "A":
feedback = "우수";
break;
case "B": // B와 C는 같은 피드백
case "C":
feedback = "양호";
break;
case "D":
feedback = "노력 필요";
break;
default:
feedback = "평가 불가";
}
console.log(feedback); // "양호"
// 표현식 활용
const score = 85;
switch (true) {
case (score >= 90):
console.log("A 등급");
break;
case (score >= 80):
console.log("B 등급");
break;
case (score >= 70):
console.log("C 등급");
break;
default:
console.log("D 등급");
}
// 출력: "B 등급"
if문과 switch문 비교:
- if문: 복잡한 조건이나 범위 비교에 적합
- switch문: 하나의 변수나 표현식을 여러 가능한 값들과 비교할 때 더 가독성이 좋음
switch문 사용 시 주의사항:
- break문이 없으면 일치하는 case 이후의 모든 case 코드가 실행됨
- case 값은 문자열, 숫자 등 가능하지만 항상 정확한 일치(===) 비교를 수행함
- default 케이스는 선택사항이지만 예상치 못한 입력 처리를 위해 권장됨