switch 문은 if문과 비슷하게 동작합니다.

 switch (expression) {
 case (value1):
     statements;
     break;
 case (value2):
     statements;
     break;
 case (value3):
     statements;
     break;
 case (value4):
     statements;
     break;
 default:
     statements;
 }

switch문은 "switch(조건)"의 값을 각각 "case(비교값)"의 조건식에 대입하여 참,거짓 여부를 결정합니다.

하지만 일치하는 값을 찾아도 break 문이 없으면 다음 조건식에 대입되며, break구문을 만나면 switch 조건문을 빠져 나오고, 일치하는 값이 없으면 default 의 코드를 실행합니다.

<script>
 var a = "js";
 var school, cnt;

 switch(a) { 
  case "asp": 
   school = "asp"; 
   cnt = 1; 
  break; 

  case "js": 
   school = "js"; 
   cnt = 2; 
  break; 

  case "java": 
   school = "java"; 
   cnt = 3; 
  break; 

  default: 
   school = "php"; 
   cnt = 0; 
 } 

 document.write("하보니는 " + cnt + "번 " + school + "입니다."); 
 // 출력: 하보니는 2번 js입니다.  
</script>

switch 조건문을 if문으로 표현하면 다음과 같습니다.

<script>
 var a = "js";
 var school, cnt;

 if(a == "asp") {
   school = "asp"; 
   cnt = 1; 
 }else if(a == "js") { 
   school = "js"; 
   cnt = 2; 
 }else if(a == "java") { 
   school = "java"; 
   cnt = 3; 
 }else{ 
   school = "php"; 
   cnt = 0; 
 } 

 document.write("하보니는 " + cnt + "번 " + school + "입니다."); 
 // 출력: 하보니는 2번 js입니다.  
</script>

간단하게 가위바위보를 할 수 있는 예제입니다.

<button id="result1">가위</button>
<button id="result2">바위</button>
<button id="result3">보</button>

<script>
document.getElementById("result1").onclick = function(){ result(0); }
document.getElementById("result2").onclick = function(){ result(1); }
document.getElementById("result3").onclick = function(){ result(2); }

function result(a){
  var com = Math.floor(Math.random()*3);

  switch(a) { 
    case com: 
     alert("비겼습니다.");
    break; 

    case (com+1)%3: 
     alert("당신이 이겼습니다.");
    break;

    default: 
     alert("컴퓨터가 이겼습니다.");
   } 
}
</script>

0 댓글