본문으로 바로가기

프로그램을 언어를 공부하면서 가장 중요한 문법을 2가지만 뽑으라고 하면 첫번째로 조건문이고 두번째는 반복문입니다.

위 2개를 어떻게 잘 조합해서 사용하느냐에 따라 프로그램이 결정된다고 해도 과언이 아닙니다. 그외 나머지는 이제 암기죠 ..... OTL 

자바스크립트도 마찬가지며 중요한 조건문에 대해서 알아보겠습니다.


 --- If문 ---

컴퓨터가 알아듣는 방식은 기계어로서 '1' 과 '0' 뿐입니다.

즉  비교연산을 결과에 따라 참(true) 이냐 ? , 거짓(false)이냐 ? 

조건에 대한 값이 true냐 false 에따라 그 결과를 실행하게 됩니다.

보통은 if 와 else를 같이 사용하게 되며 if (조건){ 명령을 실행 } 하고 그외는 else{ if 조건의 외 다른 명령을 실행}를 실행하게 됩니다.

if 조건이 참일경우 명령 1을 실행하고 거짓이면 명령2를 실행합니다.

하지만 조건이 3개이상의 답을 원하게 될경우도 있습니다.

     if(조건 1){

           명령 1

     }else if(조건 2){

           명령 2

     }else{

           명령 3

     }

이때는 else 뒤에 if조건을 추가해서 여러조건을 충족시킬수도 있습니다.

또한 if문에 걸리는 조건이 또다른 조건문일수도 있으므로 조건문안에 또다른 조건문을 중첩해서 사용도 가능합니다.

<script>

var num = prompt("숫자 하나를 입력하세요", 2);

if (num == "") {

 document.write("숫자를 입력해 주십시오.");

} else {

 if (num > 0) {

   document.write(num + "는 양수입니다.");

   } else if (num < 0) {

document.write(num + "는 음수입니다.");

   } else {

document.write(num + "은 틀림없이 0입니다.");

  }

}

</script>

위 자바스크립트 코드는 prompt 함수로 대화상자를 입력하게 하고 입력된 대화상자의 값을 변수에 담습니다.

다음 if문에 ""은 null 값 즉 값이 입력이 안되었으면 다시 입력을 해달라는 문장을 표시하고  변수에 입력된 값이 있으면 else로 넘어갑니다.

else에서는 다시 if조건을 중첩하여 양수, 음수, 0 인지 표시합니다.

<var num = prompt("숫자 하나를 입력하세요", 2);>


< prompt 함수 값으로 4를 입력했습니다.>


이렇듯 if문도 단순히 참거짓이 아닌 많은 조건이 중첩되어있을때도 사용가능하지만

왠지 코드가 길어지고 한눈에 안들어 올때가 많습니다.


 --- switch문 ---

switch문은 다중 선택문입니다. 여러가지 조건들중 변수 값이 확실하고 그중  값에 따라 실행할 명령이 다를때 case 값을 통하여 원하는 명령을 실행할 수 있습니다. 

코드도 직관적으로 보입니다.

var 변수 = 값 (변수선언을 합니다)

switch(변수){

case 값1:

명령 1 ;

break;

case 값2:

명령 13;

break;

case 값3:

명령 3 ;

break;

default:

명령;

break;

}

위 코드는 변수 값에 일치하는 case가 발견되면 case 절의 명령이 실행된니다.

default 값은 일치하는 case 값이 없을 때 실행되지만 생략가능합니다.

case 문에는 실행할 명령에 따라 여러개를 나열할 수 있으며 break만나면 명령을 실행후 switch문을 빠져나오게 됩니다.

만약 break가 없다면 일치하는 case를 실행한 후 switch문을 빠져나오지 못하고 다음 break 를 만날때까지 switch문 안에 있는 case를 실행 합니다.

다음 예문을 보시면 이해가 빠르실듯 합니다.

<script>

var yoil = prompt("요일을 입력하세요", "월");

switch (yoil) {

case "월":

document.write("일주일의 시작입니다.");

break;

case "화":

case "수":

case "목":

document.write("열심히 일해야 할 때입니다.");

break;

case "금":

document.write("불타는 금요일 보내세요.");

break;

case "토":

case "일":

document.write("편안한 주말 보내세요.");

break;

default : 

document.write("요일을 빼고 입력하시거나 다시 입력하세요");

break;

}

</script>

위의 자바스크립트도 prompt 함수를 사용합니다.

입력된 요일을 변수에 담고 switch문에 변수값에 넣어서 일치하는 case 값을 찾아냅니다.

case "월" 에는 실행문장과 break; 가 있으므로 월요일을 선택시 "일주일의 시작입니다." 가 출력됩니다. 

case"화" , case"수" 를 선택시 실행문장이 없고 break; 가 없으므로 break를 만날때까지 case값을 실행합니다. 

case"목"에서 실행문장과 break; 를 만났으니 "열심히 일해야 할 때입니다." 를 출력하 switch문을 빠져나오게 됩니다.

<prompt 함수로 금을 선택하였으니 switch 변수에는 금일 들어갑니다.>

<case는 금에 맞는 문장을 출력합니다>


 조건이 단일하거나 짧은 경우는 if else문이 좋습니다.

그러나 확실한 값을 많은 조건에서 찾을 경우는 switch 문이 직관적이고 간결합니다.