본문 바로가기

Programming/PHP/JavaScript

JavaScript switch~case 문

안녕하세요. Tony 입니다.

 

 

이번강의는 Switch~case 문에 대해서 배울려고 하는데요

 

기본적인건 앞에 루트님이 다 설명하셔서 아시리라 믿고 강의진행하도록하겠습니다.

 

일단 예제부터 보도록하겠습니다.

 

 

<html>

<head> // 꼭 body 부분에 작성하실필요없습니다. head에만 작성 하셔도되요.

 

<title>피자집</title>

 

<script language="javascript">

<!--    // 자바스크립트의 시작

var menu;

menu=prompt("메뉴를 입력해주세요: P=피자 S=스파게티"); //prompt는 내장함수입니다

                                                                                            이함수를 쓰시면 입력받을수있는 창하나가 뜹니다.

switch(menu){           //switch 문의 시작

case 'p':

case 'P':                   // 대소문자를 쓰는것은 둘다 받기위해서입니다.

document.write("피자를 선택하셨습니다.");       //document 는 print 문입니다.

case 's':

case 'S':

document.write("스파게티를 선택하셨습니다.");

defaul : // 위에 제시한 P , S 말고 다른 문자를 누른경우

document.write("메뉴에 없습니다.");

} // switch 문을 닫습니다.

//-->

</script>

</head>

<body></body>

</html>

 

기본적인 switch 문에대해서 알아봤습니다. 다음으로 넘어갑니다.

 

switch 문으로 연산자를 이용해보겠습니다.

위와 같이 head 에만 작성하도록 하겠습니다.

 

<html>

<head>

<title>Javascript Program</title>

<script language="javascript">

<!--

var A=10 , B=5 , price;

price=prompt("연산자를 입력해주세요.");

switch(price){   //switch 문을 열어줌.

case '+' : C=A+B    // 연산자 + 를 C=A+B로 선언 해줍니다.

document.write("더하기를 선택하셨습니다. 값은"+C);break; // break를 안쓰면 다음문장까지 나와버립니다.

case '-' : C=A-B        

document.write("빼기를 선택하셨습니다. 값은"+C);break;

case '*' : C=A*B

document.write("곱하기를 선택하셨습니다. 값은"+C);break;

case '/' : C=A/B

document.write("나누기를 선택하셨습니다. 값은"+C);break;

defalut:

document.write("잘못누르셨습니다.");

} //switch 문을 닫아줌.

//-->

</head>

<body></body>

</html>

 

마지막으로 한가지만 더보고 마치겠습니다.

 

<html>
<head>
<title>학점</title>
<script language="javascript">
<!--
var jum,su;
jum=prompt("점수를 입력해주세요.");
su=math.floor(jum/10);   //jum을 10으로 나눠준다.
switch(su){
case 10:
case 9:
document.write("A학점입니다.");break;
case8:
document.write("B학점입니다.");break;
case7:
document.write("C학점입니다.");break;
default:
document.write("F학점입니다.");
}
//-->
</script>
</head>
<body></body>
</html>

 

위 예제에 math.floor 는 처음 보실겁니다. // 자바스크립트 의 표현은  math라는 객체에 함수이기때문에 math.floor라 써줍니다.

math.floor가 뭔지 설명해드리겠습니다.

 

일단 switch case 문의 특징은 딱딱 맞아떨어져야됩니다.

예를들어서 99 라는 수를 집어넙니다.

위에 제가 써준 (jum/10); 라는 것때문에 99 가 9.9 인식이됩니다.

하지만

9.9는 위에 예제를 눈씻고 찾아봐도 없습니다.

그래서 성적이 처리가안되겠죠?

하지만 math.floor 를 써줌으로써 9.9 의 .9를 버립니다.

즉 소수자리는 버려지게됩니다.

그러므로 자바스크립트는 9로 인식하게되고 학점은 A학점이 나오게 되는겁니다.

 

제가 말솜씨가 없어서 잘 이해되셨을지는 모르겠으나,

도움이 됬으면 합니다.

감사합니다. ^~^