JavaScript 제어문 — if, switch
이 토픽을 마치면
if, else if, else로 조건 분기를 만들 수 있고, switch를 언제 쓰는지 판단할 수 있습니다.
조건에 따라 다르게 실행
프로그램은 항상 같은 일만 하지 않습니다. "로그인했으면 대시보드를 보여주고, 안 했으면 로그인 페이지를 보여줘" — 이런 분기를 만드는 것이 조건문입니다.
javascript
const score = 85;
if (score >= 90) {
console.log("A 등급");
} else if (score >= 80) {
console.log("B 등급");
} else if (score >= 70) {
console.log("C 등급");
} else {
console.log("재시험");
}
// 출력: "B 등급"if 뒤의 소괄호 안에 조건을 넣습니다. 조건이 true면 해당 블록이 실행되고, false면 다음 else if나 else로 넘어갑니다.
비교 연산자와 논리 연산자
조건문 안에서 값을 비교할 때 사용하는 기호들입니다.
javascript
// 비교 연산자
console.log(10 > 5); // true
console.log(10 === 10); // true (값과 타입 모두 같은가)
console.log(10 == "10"); // true (값만 같은가 — 쓰지 마세요)
console.log(10 !== 5); // true (같지 않은가)
// ⚠️ == 대신 === 을 쓰세요
// ==는 타입을 자동 변환해서 비교 → 예상 못한 결과 발생
console.log(0 == false); // true (위험!)
console.log(0 === false); // false (정확!)javascript
// 논리 연산자 — 조건을 조합
const age = 25;
const hasTicket = true;
// AND: 둘 다 true여야 true
if (age >= 18 && hasTicket) {
console.log("입장 가능");
}
// OR: 하나만 true여도 true
if (age < 13 || age >= 65) {
console.log("할인 적용");
}
// NOT: true ↔ false 뒤집기
if (!hasTicket) {
console.log("티켓을 구매하세요");
}== 대신 ===을 쓰는 것은 JavaScript의 가장 기본적인 규칙입니다. ==는 타입을 자동 변환하면서 비교하기 때문에 예측하기 어려운 결과가 나옵니다.
switch — 값 하나로 여러 갈래
하나의 변수 값에 따라 여러 갈래로 나눌 때는 switch가 깔끔합니다.
javascript
const day = "월";
switch (day) {
case "월":
case "화":
case "수":
case "목":
case "금":
console.log("평일");
break;
case "토":
case "일":
console.log("주말");
break;
default:
console.log("잘못된 입력");
}break를 빼먹으면 다음 case까지 실행이 흘러내립니다(fall-through). 의도적으로 쓸 수도 있지만, 대부분은 실수입니다. break를 빼먹었는지 확인하는 습관을 들이세요.