switch와 삼항 연산자
여러 경우로 나누는 다른 방법과 선택 기준을 봅니다.
같은 일을 짧게 적는 방법
앞 단원의 if 만으로 모든 조건을 다룰 수 있습니다.
다만 자주 나오는 두 가지 모양에는 더 짧게 적는 방법이 따로 있습니다.
- switch — 하나의 값을 여러 후보와 견주어 볼 때 사용합니다.
- 삼항 연산자 — 참·거짓에 따라 값 하나를 고를 때 사용합니다.
switch 로 요일 이름 찾기
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 까지 이어서 실행합니다.
const day = 1; switch (day) { case 1: console.log("월요일"); case 2: console.log("화요일"); case 3: console.log("수요일"); }
실수로 빠뜨린 것이 대부분이지만, 여러 후보를 같게 다루려고 일부러 비워 두기도 합니다.
const day = 6; switch (day) { case 6: case 7: console.log("주말입니다"); break; default: console.log("평일입니다"); }
삼항 연산자로 값 고르기
조건 ? 참일 때 값 : 거짓일 때 값 으로 적습니다.
값 하나를 고르는 자리에만 사용합니다.
const age = 20; const label = age >= 19 ? "성인" : "미성년자"; console.log(label);
같은 일을 if 로 적으면 다섯 줄이 됩니다. 값을 정하는
것이 전부라면 삼항 연산자가 짧고 읽기 좋습니다.
let label; if (age >= 19) { label = "성인"; } else { label = "미성년자"; }
무엇을 선택할까
- 값 하나를 고를 때 — 삼항 연산자
- 하나의 값을 여러 후보와 견줄 때 — switch
- 그 밖의 모든 경우 — if
범위를 나누는 조건(score >= 80)은
switch 로 적을 수 없습니다.
switch 는 같은지만 봅니다.
처음에 자주 걸리는 것
아래 case 까지 이어서 실행됩니다. 결과가 여러 줄
나오면 이것부터 확인하세요.
switch 는 === 로
비교합니다. 입력 칸에서 읽은 글자
"3" 은 case 3 에
맞지 않습니다.
두 번 넘게 겹치면 읽기 어렵습니다. 그 자리는
if 나 switch 로
적으세요.
const grade = s >= 90 ? "A" : s >= 80 ? "B" : s >= 70 ? "C" : "F";
직접 해보기
월(1~12)을 변수에 담고 switch 로 계절을
출력하세요. 12·1·2월은 겨울, 3·4·5월은 봄, 6·7·8월은 여름, 나머지는 가을입니다.
case 를 이어 적고 마지막에만 코드를 둡니다.
재고 수를 변수에 담고,
남은 수량: 3개 또는
품절 을 출력하세요. 재고가 0이면 품절입니다.
이 단원의 정리
switch는 하나의 값을 여러 후보와 견줍니다.===로 비교합니다.break를 빠뜨리면 아래case까지 실행됩니다.- 여러 후보를 같게 다루려면
case를 이어 적습니다. - 삼항 연산자는
조건 ? 참일 때 : 거짓일 때로 값 하나를 고릅니다. - 범위를 나누는 조건은
switch로 적을 수 없습니다.