Skip to content

조건문 (Conditionals)

조건문은 프로그램 실행 흐름을 제어하는 기본 문법으로, 주어진 조건이 참이면 특정 코드를 실행하고, 거짓이면 다른 코드를 실행한다. 조건문은 반드시 true 또는 false로 평가되어야 하며, 참일 경우 해당 블록이 실행되고, 거짓이면 건너뛴다.

less
조건문 (Conditionals)
├── if 문
├── if - else 문
├── if - else if 문
└── switch/case 문

(1) if 문

if 문은 조건이 true일 경우에만 특정 코드를 실행한다. 가장 기본적인 조건문이며, "이 조건이 맞으면 실행해라"라는 단순한 구조를 가진다. 조건이 false일 경우, 코드 블록은 무시되고 아무 동작도 하지 않는다.

js
if (조건) {
  // 조건이 참일 때 실행될 코드
}
js
let num = 10;

if (num === 10) {
  console.log("num의 값은 10 입니다."); // num의 값은 10 입니다.
}

(2) if - else 문

조건이 true일 경우 if 블록을, false이면 else 블록을 실행한다.

js
if (조건) {
  // 조건이 참일 때 실행
} else {
  // 조건이 거짓일 때 실행
}
js
let num = 5;

if (num === 10) {
  console.log("num값은 10입니다.");
} else {
  console.log(`num값은 ${num}입니다.`); // ${} 템플릿 리터럴 활용을 위해 ``으로 문자열 감싸줌
}
// num값은 5입니다.

(3) if - else if 문

여러 조건 중 하나를 선택해야 할 때 사용한다. 위에서부터 순차적으로 조건을 검사하며, 처음으로 true가 되는 조건의 블록만 실행된다.

js
if (조건1) {
  // 조건1 참일 때 실행
} else if (조건2) {
  // 조건2 참일 때 실행
} else {
  // 모든 조건이 거짓일 때 실행
}
js
let num = 5;

if (num === 10) {
  console.log("num값은 10입니다.");
} else if (num < 10) {
  console.log("num값은 10보다 작습니다.");
} else {
  console.log("num값은 10보다 큽니다.");
}
// num값은 10보다 작습니다.

(4) switch/case 문

switch문은 변수의 값에 따라 여러 가지 경우로 분기 처리할 때 사용하는 조건문으, 주로 값이 여러 개로 나뉘는 경우에 사용된다. 내부적으로 === 연산자와 같은 엄격한 비교를 수행하므로, 변수 값과 case 값의 타입이 일치해야 해당 블록이 실행된다. 예를 들어, case "10"case 10은 서로 다른 것으로 취급된다.

js
let 변수명 = 값;

switch (변수명) {
  case 값1:
    // 실행할 코드1
    break;
  case 값2:
    // 실행할 코드2
    break;
  default:
  // 모든 case에 일치하지 않을 때 실행할 코드
}
  • case 값: 변수 값과 일치할 경우 실행할 코드 블록을 나타낸다.
  • break: 해당 case 실행 후 switch 문을 빠져나오게 한다.
  • default: 일치하는 case가 없을 때 실행되는 코드이다.
js
let fruit = "apple";

switch (fruit) {
  case "banana":
    console.log("바나나");
    break;
  case "orange":
    console.log("오렌지");
    break;
  case "apple":
    console.log("사과");
    break;
  case "grape":
    console.log("포도");
    break;
  default:
    console.log("다른 과일");
}
// 사과

Fall-through 현상 (break문 생략 시)

  • break문을 생략하면, 해당 조건에 맞는 case부터 이후 모든 case 코드가 연속해서 실행된다. 이를 fall-through 현상이라고 하며, 일반적으로 의도치 않은 오류 원인이 되지만, 특정 상황에서는 의도적으로 활용하기도 한다.
js
let fruit = "apple";

switch (fruit) {
  case "banana":
    console.log("바나나");
  case "apple":
    console.log("사과");
  case "grape":
    console.log("포도");
  default:
    console.log("다른 과일");
}

// 사과
// 포도
// 다른 과일