JS LAB
JS 1.9 · 1부. 기본 문법

switch와 삼항 연산자

여러 경우로 나누는 다른 방법과 선택 기준을 봅니다.

예상 학습 시간 13분 실행 단추가 있는 예제는 고쳐서 실행해 볼 수 있습니다 난이도 입문
개념 설명

같은 일을 짧게 적는 방법

앞 단원의 if 만으로 모든 조건을 다룰 수 있습니다. 다만 자주 나오는 두 가지 모양에는 더 짧게 적는 방법이 따로 있습니다.

  • switch — 하나의 값을 여러 후보와 견주어 볼 때 사용합니다.
  • 삼항 연산자 — 참·거짓에 따라 값 하나를 고를 때 사용합니다.
최소 예제 · 편집 가능

switch 로 요일 이름 찾기

script.js
const day = 3;

switch (day) {
	case 1:
		console.log("월요일");
		break;
	case 2:
		console.log("화요일");
		break;
	case 3:
		console.log("수요일");
		break;
	default:
		console.log("모르는 번호입니다");
}
출력
수요일

case 는 후보이고, default 는 어느 후보에도 맞지 않을 때입니다. switch=== 로 비교하므로 타입도 같아야 합니다.

상세 사용법

break 를 빠뜨리면

break 는 여기서 끝내라는 뜻입니다. 빠뜨리면 아래 case 까지 이어서 실행합니다.

script.js
const day = 1;

switch (day) {
	case 1:
		console.log("월요일");
	case 2:
		console.log("화요일");
	case 3:
		console.log("수요일");
}
출력
월요일 화요일 수요일

실수로 빠뜨린 것이 대부분이지만, 여러 후보를 같게 다루려고 일부러 비워 두기도 합니다.

script.js
const day = 6;

switch (day) {
	case 6:
	case 7:
		console.log("주말입니다");
		break;
	default:
		console.log("평일입니다");
}
출력
주말입니다
상세 사용법

삼항 연산자로 값 고르기

조건 ? 참일 때 값 : 거짓일 때 값 으로 적습니다. 값 하나를 고르는 자리에만 사용합니다.

script.js
const age = 20;

const label = age >= 19 ? "성인" : "미성년자";
console.log(label);
출력
성인

같은 일을 if 로 적으면 다섯 줄이 됩니다. 값을 정하는 것이 전부라면 삼항 연산자가 짧고 읽기 좋습니다.

같은 일을 if 로
let label;

if (age >= 19) {
	label = "성인";
} else {
	label = "미성년자";
}
상세 사용법

무엇을 선택할까

  • 값 하나를 고를 때 — 삼항 연산자
  • 하나의 값을 여러 후보와 견줄 때 — switch
  • 그 밖의 모든 경우 — if

범위를 나누는 조건(score >= 80)은 switch 로 적을 수 없습니다. switch 는 같은지만 봅니다.

흔한 실수

처음에 자주 걸리는 것

1. break 를 빠뜨립니다

아래 case 까지 이어서 실행됩니다. 결과가 여러 줄 나오면 이것부터 확인하세요.

2. 타입이 다른 값을 case 에 적습니다

switch=== 로 비교합니다. 입력 칸에서 읽은 글자 "3"case 3 에 맞지 않습니다.

3. 삼항 연산자를 겹쳐 적습니다

두 번 넘게 겹치면 읽기 어렵습니다. 그 자리는 ifswitch 로 적으세요.

const grade = s >= 90 ? "A" : s >= 80 ? "B" : s >= 70 ? "C" : "F";
실습 문제

직접 해보기

1. 계절 이름 출력하기 난이도 하

월(1~12)을 변수에 담고 switch 로 계절을 출력하세요. 12·1·2월은 겨울, 3·4·5월은 봄, 6·7·8월은 여름, 나머지는 가을입니다.

여러 후보를 같게 다루려면 case 를 이어 적고 마지막에만 코드를 둡니다.
const month = 4; switch (month) { case 12: case 1: case 2: console.log("겨울"); break; case 3: case 4: case 5: console.log("봄"); break; case 6: case 7: case 8: console.log("여름"); break; default: console.log("가을"); }
2. 삼항 연산자로 문장 만들기 난이도 중

재고 수를 변수에 담고, 남은 수량: 3개 또는 품절 을 출력하세요. 재고가 0이면 품절입니다.

const stock = 3; const text = stock === 0 ? "품절" : `남은 수량: ${stock}개`; console.log(text);
요약

이 단원의 정리

  • switch 는 하나의 값을 여러 후보와 견줍니다. === 로 비교합니다.
  • break 를 빠뜨리면 아래 case 까지 실행됩니다.
  • 여러 후보를 같게 다루려면 case 를 이어 적습니다.
  • 삼항 연산자는 조건 ? 참일 때 : 거짓일 때 로 값 하나를 고릅니다.
  • 범위를 나누는 조건은 switch 로 적을 수 없습니다.