프로그램을 언어를 공부하면서 가장 중요한 문법을 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 문이 직관적이고 간결합니다.