자바스크립트 switch
조건문은 두 개이상의 조건을 비교할 때 사용하여 if else if
와 유사합니다. switch
조건문은 case
에는 상수값만 올 수 있어 변수, 비교식 등에는 사용할 수 없습니다.
자바스크립트 switch 조건문
자바스크립트 switch
조건문은 switch
문과 case
문으로 구성됩니다. switch()
에 적힌 데이터와 case
뒤에 적힌 데이터를 서로 비교하여, 일치하면 실행, 일치하지 않으면 다음 case
문으로 넘어갑니다.
기준이 되는 switch()
에 대해서 case
문을 여러개 지정할 수 있기 때문에 switch
조건문은 두 개 이상의 조건을 지정할 때 사용합니다. 따라서 if else if
조건식과 유사합니다.
switch ()
괄호안에는 변수, 상수, 비교연산자 등 자유롭게 데이터가 올 수 있습니다. 그러나 switch()
와 같은지 비교를 할 case
문 뒤에는 상수값만 올 수 있습니다.
<script>
var 변수;
switch ( 변수 )
{
case 상수1 : //변수 = 상수1 이면, 실행문 A 실행
실행문 A
break; //swtich { } 코드 블록 탈출
case 상수2 : //변수 != 상수1 이고, 변수 = 상수2 이면, 실행문 B 실행
실행문 B
break; //swtich { } 코드 블록 탈출
default : //변수 != 상수1 이고, 변수 != 상수2 이면, 실행문 C 실행
실행문 C
}
</script>
예를 들어 switch
에 (변수)
를 삽입한 경우, 변수
와 case
의 상수1
이 같은지 비교를 합니다. 같으면 실행문 A
를 실행시킨 후 break
문에 의해서 전체 switch
문을 빠져나옵니다. 변수
와 case 상수1
이 서로 다른 경우 다음 case
코드 블록으로 넘어갑니다. 같은 과정을 반복해서 switch(변수)
가 모든 case 상수
와 일치하지 않으면 default
코드 블록에 삽입된 코드가 실행되며 switch
조건문은 종료됩니다.
switch 조건문 문자 비교
음료수 자판기에서 음료수 이름을 입력하면 가격이 조회되는 프로그램입니다.
<script>
var drink = prompt ( "가격 조회를 원하는 음료수를 입력하세요.( 콜라, 사이다, 커피 中 택1)", "" );
//switch 조건문
switch (drink)
{
case "콜라" :
document.write ( "800원" );
break;
case "사이다" :
document.write ( "900원");
break;
case "커피" :
document.write ( "700원" );
break;
default :
document.write ("잘못된 단어 입력");
}
</script>
자바스크립트 switch 조건문 : 숫자 비교
switch ( )
의 괄호안에는 변수이외에도 여러 연산자가 조합되어 값이 올 수 있습니다. 입력한 숫자가 홀수/짝수인지 맞추는 switch
조건문입니다. switch ()
괄호안에 변수와 산술 연산자가 같이 등장한 케이스입니다.
산술 연산자의 나머지 연산자(%
)를 사용해서 정수는 2
로 나눠서 나머지가 0
이면 짝수, 1
이면 홀수라는 성질을 이용한 조건문입니다.
<script>
var num = prompt( "원하는 정수를 입력해주세요.", "" );
//switch 조건문 홀/짝 맞추기
switch ( num % 2 )
{
case 0 :
document.write ( "입력한 숫자는 짝수입니다." );
break;
case 1 :
document.write ( "입력한 숫자는 홀수입니다." );
break;
default :
document.write ( "정수값을 입력해주세요." );
}
</script>
자바스크립트 switch 조건문 장점 : 간결성
switch
조건문은 if else if
조건식으로 변환할 수 있습니다. 두 식을 비교해보면 switch
조건문이 조금더 간결하고 가독성이 높습니다.
<script>
var drink = prompt ( "가격 조회를 원하는 음료수를 입력하세요.( 콜라, 사이다, 커피 中 택1)", "" );
//if else if 조건문
if ( drink = "콜라" )
{
document.write ( "800원" );
}
else if (drink = "사이다")
{
document.write ( "900원" );
}
else if (drink = "커피")
{
document.write ( "700원" );
}
else
{
document.write ( "잘못된 단어 입력" );
}
</script>
자바스크립트 switch 조건문 단점 : 상수
자바스크립트 swtich
조건문에는 case
값에 상수만 올 수 있습니다. 숫자 3
, 문자 "Hello"
와 같은 값을 상수라고 합니다.
switch ()
의 괄호 사이에는 자유롭게 데이터가 올 수 있습니다. 하지만 case
뒤에는 변수, 조건식 등을 사용할 수 없습니다. 아래 예제는 switch
조건문이 작동되지 않습니다.
<script>
var num = prompt( "원하는 숫자를 입력하세요.", "" );
switch ( num )
{
case num > 0 : //변수와 비교 불가
document.write ( "입력한 숫자는 양수입니다." );
break;
case num = 0 : //변수와 비교 불가
document.write ( "입력한 숫자는 0입니다." );
break;
case num < 0 : //변수와 비교 불가
document.write ( "입력한 숫자는 음수입니다." );
break;
default
document.write ( "숫자를 입력해주세요." );
}
</script>
비교 대상에 변수나 조건식을 비교해야 할 경우 switch
문 대신 if else if
조건문을 사용해야 합니다.
<script>
var num = prompt( "원하는 숫자를 입력하세요.", "" );
if ( num > 0 )
{
document.write ( "입력한 숫자는 양수입니다." );
}
else if ( num = 0 )
{
document.write ( "입력한 숫자는 0입니다." );
}
else if ( num < 0)
{
document.write ( "입력한 숫자는 음수입니다." );
}
else
{
document.write ( "숫자를 입력해주세요." );
}
</script>
비교 대상이 상수값이면 switch
조건문이 가능하고 그 밖에 보편적인 경우에는 if
조건문을 사용합니다.