조건문 [if, switch]

DOYOUNG·2023년 5월 16일
0

javascript

목록 보기
6/17
post-thumbnail

조건문 if, switch

1. if 조건문

if 문

if(조건문) 실행문;
👉 조건문이 true일 경우 실행문 실행함.

📌 const open = '';
'' 안에 공백 스페이스가 있으면 true, 없으면 false.

const open = true;

// 한줄 코드
if (open) console.log('영업중입니다.');

// 여러줄 코드 - 블록문 사용
if (open) {
  console.log('환영합니다.');
  console.log('즐거운 쇼핑하세요!');
}

if ~ else 문

const x = 20;

if (x % 2) {
  console.log('홀수입니다.');
} else {
  console.log('짝수입니다.');
}

if ~ else if 문

const x = 21;

if (x % 2) {
  console.log('홀수입니다.');
} else if (x % 4) {
  console.log('짝수입니다.');
} else {
  console.log('4의 배수입니다.');
}

📌 return 문 (권장되는 방식)

return문 : 함수 실행을 완전히 종료함.
👉 간단한 조건문이 아니라면 else 보다는 return문이나 삼항연산자(간단한 경우)를 사용하는 것이 좋음.

function evalNum () {
  const x = 21;

  if (x % 2) {
    console.log('홀수입니다.');
    return;
    // 윗 부분 조건문이 true면 함수 실행 종료.(= return)
  }

  if (x % 4) {
    console.log('짝수입니다.');
    return;
    // 첫번째 조건문이 false면 아래 조건 실행하고 true면 함수 실행 종료.
  }

  console.log('4의 배수입니다.');
}

evalNum();
console.log('블록문 바깥');

📍 조건문 응용 (업그레이드)

조건문을 응용하여 만들 수 있는 예제가 있다.

1) 1번 예제는 한식 메뉴들을 배열에 넣고 배열의 내장 함수인 includes를 사용하여 조건식을 만들었다.

function isKoreanFood(food) {
  if (["불고기", "떡볶이", "비빔밥"].includes(food)) {
    return true;
  }
  return false;
}

const food1 = isKoreanFood("불고기");
const food2 = isKoreanFood("파스타");
console.log(food1);
console.log(food2);

2) 2번 예제는 나라별 음식을 객체로 만들어서 대괄호 접근법을 사용해 객체의 프로퍼티를 호출한다.

const meal = {
  한식: "붎고기",
  중식: "멘보샤",
  일식: "초밥",
  양식: "스테이크",
  인도식: "카레"
};

const getMeal = (mealType) => {
  return meal[mealType] || "굶기";
};

console.log(getMeal("한식"));

2. switch문

특정 값에 대한 다수의 옵션이 있을 때 사용함
주어진 평가에 일치하는 case로 실행위치 이동함

const fingersOut = 2;

switch (fingersOut) {
  // 순서 상관없음
  case 2:
    console.log('가위');
    break;
  case 0:
    console.log('바위');
    break;
  case 5:
    console.log('보');
    break;
  default:
    console.log('무효');
}

break를 써야만 해당 케이스의 결과만 반환함.
(break 쓰지 않으면 모든 case의 결과를 전부 반환함.)

default : case에 해당하는 값이 없을 때, default 값을 반환함. default에는 break 필요 없음.

📌 여러개의 케이스가 같은 결과 반환할 때

const month = 1;
let season = '';

switch (month) {
  case 1: case 2: case 3:
    season = '1분기'; break;

  case 4: case 5: case 6:
    season = '2분기'; break;

  case 7: case 8: case 9:
    season = '3분기'; break;

  case 10: case 11: case 12:
    season = '4분기'; break;

  default: 
    season = '잘못된 월입니다.';
}

console.log(season);
const startMonth = 1;
let holidays = '분기 내 휴일:';

switch (startMonth) {
  case 1:
    holidays += ' 설날';
  case 2:
  case 3:
    holidays += ' 3•1절';
    break;

  case 4:
  case 5:
    holidays += ' 어린이날';
  case 6:
    holidays += ' 현충일';
    break;

  case 7:
  case 8:
    holidays += ' 광복절';
  case 9:
    holidays += ' 추석';
    break;

  case 10:
    holidays += ' 한글날';
  case 11:
  case 12:
    holidays += ' 크리스마스';
    break;

  default: 
    holidays = '잘못된 월입니다.';
}

console.log(holidays);
profile
프론트엔드 개발자 첫걸음

0개의 댓글