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 케이스는 선택사항이지만 예상치 못한 입력 처리를 위해 권장됨