JS/JAVASCRIPT

Switch문과 삼항연산자

ddururu 2025. 1. 29. 19:41

Switch문

어떤 값을 가진 대상을 두고 조건값과 일치하는지를 확인하고 동작을 수행하는 방식

(if : 조건식을 두고 조건의 진위 여부에 다라 동작을 수행하는 방식)

  • 조금 더 간결하고 의미가 명확해 보인다는 장점
  • case가 값으로 딱 정해진 경우에만 사용가능
  • 조건이 비교식인 경우 사용불가
let food = "buger"

switch (food) {
  case 'pizza':
    console.log("피자 주세요")
    break;
  case 'buger':
    console.log("버거 주세요")
		break;
  default:
    console.log("메뉴에 없는 음식입니다")
}

//버거주세요

 case 키워드를 작성하고 조건값을 입력한 뒤 콜론(:)으로 case문의 끝 지점을 구분해 준다.

(참고로 이렇게 쓰는 문장을 라벨문, 레이블문, lable statement라고 부른다.)

case문 안에서, 해당 조건값과 일치했을 때 동작해야 될 코드를 작성하면 된다.

break 키워드는 switch 블록문을 빠져나가는 구문으로,

해당 조건을 만족한 뒤 필요한 동작을 한 다음은 블록문을 빠져나오는 것이 일반적이기 때문에

생략이 가능하지만, 작성해주는 경우가 더 많다.

let food = "buger"

switch (food) {
  case 'pizza':
    console.log("피자 주세요")
    break;
  case 'buger':
    console.log("버거 주세요")
		
  default:
    console.log("메뉴에 없는 음식입니다")
}

//버거주세요
//메뉴에 없는 음식입니다

default라는 키워드를 입력하고 콜론으로 default문을 구분한 뒤

모든 조건값들과 비교해서 일치하는 결과가 없을 경우에 필요한 동작을 작성하면 된다.

else문 같은 느낌으로, 반드시 필요한 구문은 아니기 때문에 얼마든지 생략도 가능함.

더보기
💡 Switch문은 조건식의 진위가 아니라, 조건값의 일치 여부를 판단하는 것!

 

삼항연산자

  • if문을 간단하게 표현할 수 있다.
  • 조건에 따라 실행하는 내용이 한 가지 일 때 쓰기 좋다.
  • 조건에 따라 실행하는 내용이 다르다.
  • 조건식 ? true : false 구조

삼항연산자 구문 표현

(조건)?value1:value2

조건이 참인 경우 물음표 다음에 있는 value1 실행되며, 거짓이면 value2가 실행된다.

삼항연산자 사용법

삼항연산자는 변수에 결과값을 담아 필요할 때마다 변수를 사용한다.

삼항연산자를 사용하면 긴 if문이 한 줄로 표현될 수 있기 때문에 아주 유용하다.

- if문

let menu = 8;

if (menu <= 3) {
  console.log("범위 안의 숫자입니다.")
} else {
  console.log("범위 밖의 숫자입니다.")
}

- 삼항연산자

let menu = 8;

let answer = menu <= 3 ? "범위 안의 숫자입니다." : "범위 밖의 숫자입니다."
console.log(answer);

 

위와 같이 if문을 간단하게 표현할 수 있음

let food = "buger"
let answer = food == "buger"? '햄버거 좋아':'햄버거 싫어'
console.log(answer); //햄버거 좋아

 

연산식을 붙여서 더 많은 조건 표현도 가능함

let food = "buger"
if (food == 'pizza') {
  console.log("피자좋아")
} else if (food == 'buger') {
  console.log("햄버거좋아")
} else {
  console.log("다 싫어")
}

//위의 if문을 삼항 연산자로 표현하면

let food = "pizza"
let answer = food == "pizza" ? "피자좋아" : food == 'buger' ? '햄버거 좋아' : "다 싫어"
console.log(answer); //피자좋아