본문 바로가기
JavaScript

[JavaScript] 조건문 if문과 switch문

by dev또리 2023. 2. 19.
728x90

어떤 특정 조건이 만족할 때만
코드를 실행시키는 문법

 

 

조건 만족 = boolean타입으로 참(true)일 때 코드 블록 실행 !

조건 불만족 (+else문 미작성시) 실행 시키지 않아 아무것도 출력 되지 않음

if 조건문

if(조건식){ // 제일 먼저 조건 체크, 조건을 만족하면 코드 블록 실행, 전체 조건문 빠져나옴
// 실행할 코드 블록
} else if(조건식) { //앞서 작성 된 조건식을 만족하지 않은 경우, 조건을 체크하고 조건을 만족하면 코드 블록 실행 후 전체 조건문 빠져나옴
// 실행 할 코드 블록
} else { // 앞서 작성 된 모든 조건식을 만족하지 않는 경우 무조건 실행되는 코드 블록
//실행 할 코드 블록
}

//else if 문은 여러 개 입력 가능
//else 문은 하나만 입력 가능

 

 

 

Switch문

switch(key){
	case value:
    	//key가 value일 때 실행문
        break;
    case value2:
    	//key가 value2일 때 실행문
        break;
    case value3:
    	//key가 value3일 때 실행문
        break;
    default:	//case절의 상수 값(value)이 모두 일치하지 않는 경우
    	//실행 할 코드
    	break;
}

 

switch라는 키워드 다음에 오는 소괄호 안에 switch 내부에서 기준이 될 비교값(key)를 적는다

일치하는 case를 찾으면 해당 case와 break사이에 있는 실행문을 실행하고 break되어 실행문이 끝난다

 

 

Date 객체의 내장 함수 중 요일에 해당하는 숫자 값을 반환하는 getDay()함수로 무슨 요일인지 문자 값을 구하는 예제

 

//switch문은 상수값만 올 수 있음, 비교 구문 안 됨
//상수 = 숫자 혹은 특정 문자
let d = new Date();
let day = d.getDay();	//일요일0,월요일1,...,토요일6을 반환
let dayName = "";
switch(
	day	//조건식에 상수값을 전달
    ){
    case 0:
    	dayName = "일요일";
        break;
    case 1:
    	dayName = "월요일";
        break;
    case 2:
    	dayName = "화요일";
        break;
    case 3:
    	dayName = "수요일";
        break;
    case 4:
    	dayName = "목요일";
        break;
    case 5:
    	dayName = "금요일";
        break;
    case 6:
    	dayName = "토요일";
        break;
    default:
    	dayName = "";
        break;
    }

 

 

if문과 switch문의 차이

 

switch구문은 변수를 입력 받아 미리 정해놓은 여러 값들과의 일치여부를 판단하여 switch문 내의 control flow를 결정한다.

 

if else구문은 boolean의 결과 값을 내놓는 조건문에 따라 true, false에 해당하는 각각 두 개의 흐름으로 갈라진다. 

if else문을 중첩되게 배치하면, 두 개의 흐름뿐만 아니라 세 개, 네 개 등등.. 그 이상의 control flow을 가질 수 있게된다.

(if / else if / else 와 같은 방식)

 

if else구문을 쓸 수 있는 모든 상황에 switch문을 쓸 수 있는 건 아니지만그와 반대로 모든 switch 구문은 if else문으로 대체될 수 있다.

 

즉, 하나의 변수를 입력받아 그 변수의 값에 따라 다른 흐름으로 이동할 수 있는 코드를 짜야할 때에 switch문과 if else구문이 둘 다 사용될 수 있음을 알 수 있다.

 

조건식에 비교 연산을 사용할 수 있기에 switch문보다 자바스크립트 구현 시 많이 사용된다.

하지만 if문은 조건식을 위에서부터 차례대로 순차적으로 비교하게 된다.

switch문은 상수 값을 판단하고 해당하는 case절로 바로 찾아가기 때문에 if문보다 훨씬 효율적이다.

비교 연산이 필요 없고, 조건을 비교할 대상이 범위가 아닌 특정 상수 값인 경우라면 if문보다 switch문을 사용하는 것이 좋다.

728x90

댓글