조건문
조건문이란?
조건문은 조건식의 값이 참(true) 인지, 거짓(false)인지에 따라 자바스크립트 코드를 제어 합니다. 예를 들어 질의응답 창을 이용해 방문자가 좋아하는 숫자를 입력받습니다. 이때 입력된 값을 2로 나누어 나머지 값이 0이면 "당신이 좋아하는 숫자는 짝수입니다."라고 출력하게 되고, 아닐 경우에는 "당신이 좋아하는 숫자는 홀수입니다." 라고 출력하게 한다고 합시다. 이렇게 수를 나눈 나머지 값에 따라 다른 결과를 출력하게 하려면 조건문을 사용해야 합니다. 조건문의 종류에는 if문, else문, 그리고 if else문이 있습니다.
if문
if 문은 조건식을 만족(true) 할 경우에만 코드를 실행합니다. 다음은 if문의 기본형입니다. 조건식은 앞에서 배웠던 Boolean() 내장 메서드와 마찬가지로 그 어떤 데이터를 입력해도 true 또는 false를 반환합니다. 이 내용은 적용 예제를 보며 자세히 살펴보겠습니다.
if(조건식){
자바스크립트 코드;
}
[적용 예제 1]에서 num <500의 비교 결과는 10<500 이므로 true를 반환합니다. 조건문 내의 코드를 실행하면 "hello"가 출력되겠죠.
정용 예제1
var num=10;
if(num<500){ //true를 반환합니다.
document.write("hello");
}
조건식에 논리형 데이터가 아닌 다른 형이 오는 이유
조건식에 논리형 데이터 (true,false)가 아닌 다른 형의 데이터가 입력되어도 true 또는 false로 인식 됩니다.다음은 조건식에 논리형 데이터가 아닌 다른 형의 데이터가 입력되었을때 반환되는 결과 입니다.
다음 값이 조건식에 입력되면 false를 반환하지만 그밖에 값은 true로 인식합니다.
출력되지 않는 경우
var num=3;
if(num){ //3은 false입니다.
document.write(num);
}
출력되는경우
var num=0;
if(num){ //0은 false입니다.
document.write(num);
}
다음 예제에서 방문자가 질의응답 창에 이름을 입력하지 않으면 기본 응답값인 빈 문자("")가 변수에 저장되어 조건식에 거짓(false)값이 반환되고 그 결과 문장이 출력되지 않습니다.
06: <script>
07: var userName = prompt("방문자의 이름은?","");
08:
09: if(userName) {
10: document.write(userName+"님 반갑습니다! 방문을 환영합니다.");
11: }
12:</script>
else문
else 문은 조건식을 만족할 (true) 경우와 만족하지 않을(false) 경우에 따라 실행되는 코드가 달라집니다. 즉, 두 가지 결과가 나올수 있습니다. 다음은 조건식의 만족 여부에 따라 실행되는 코드가 달라지는 else 문의 기본형입니다.
if(조건식){
자바스크립트 코드1;
}else{
자바스크립트 코드2;
}
다음은 예제를 통해 else 문에 대해 알아보겠습니다. 방문자에게 질의응답 창으로 좋아하는 숫자를 입력받고 if~else 문을 사용하여 입력된 값이 짝수인지,홀수인지에 따라 출력되는 결과가 다르게 나타나도록 하였습니다.
06: <script>
07: var num = prompt("당신이 좋아하는 숫자는?","0");
08:
09: if(num % 2 == 0) { //짝수일 경우에 실행
10: document.write("당신이 좋아하는 숫자는 짝수입니다.");
11: } else { //홀수일 경우에 실행
12: document.write("당신이 좋아하는 숫자는 홀수입니다.");
13: }
14:</script>
if else문
else if 문은 두 가지 이상의 조건식과 정해 놓은 조건을 만족하지 않았을 때 실행되는 코드로 이루어져 있습니다.
다음은 else if 문의 기본형입니다. 가장 위에 있는 조건식1부터 5까지 차례로 조건 검사를 하면서 만족(true)라는 값이 나오면 그에 해당하는 코드를 실행하고 조건문을 종료합니다. 조건식 중 만족(true)라는 값이 하나도 없으면 else 문의 중괄호 {...}에 있는 코드를 실행합니다.
if(조건식1){
코드1;
}else if(조건식2){
코드2;
}else if(조건식3){
코드3;
}else if(조건식4){
코드4;
}else if(조건식5){
코드5;
}else if(조건식2){
코드6;
}
다음은 질의응답 창을 이용하여 "현재는 몇 월입니까?"를 묻고, else if 문을 사용해 현재 월에 해당하는 계절과 관련된 문구가 출력되도록 작성한 예제입니다.
06: <script>
07: var mon = prompt("현재는 몇 월입니까?","0");
08:
09: if(mon>=9 && <= 11){ //9~10
10: document.write("독서의 계절 가을이네요!!");
11: }else if(mon>=6 && mon <=8{ //6~8
12: document.write("여행가기 좋은 여름이네요!!");
13: }else if(mon>=3 && mon <=5{ //3~5
14: document.write("햇살 가득한 봄이네요!!");
15: }else{ //나머지 입력
16: document.write("스키의 계절 겨울이네요!!");
17: }
18:</script>
중첩 if문
조건문 안에 조건문이 있으면 중첩 if 문이라고 합니다. 중첩if문의 기본형은 다음과 같습니다.
if(조건식1){
if(조건식2){
자바스크립트 코드;
}
}
중첩 if 문은 바깥쪽에 있는 조건문의 조건식1을 만족해야만 안쪽에 있는 조건문인 조건식2를 검사합니다. 만일 안쪽 if 문의 조건식2를 만족하지 않으면 바깥쪽 조건문인 조건식1의 중괄호 안에 있는 코드만 실행하고 종료됩니다.
다음은 중첩 if 문을 사용해 아이디와 비밀번호가 일치했을 때 환영 문구가 출력되도록 작성한 예제입니다. 비밀번호가 일치하지 않을 경우에는 브라우저가 새로 고침이 되도록 했습니다.
06: <script>
07: var id = "easy1004"; //아이디
08: var pw = "112233"; //비밀번호
09:
10: var user_id = prompt("아이디는?",""); //아이디 입력
11: var user_pw = prompt("비밀번호는?",""); //비밀번호 입력
12:
13: if(id == user_id){ *아이디가 일치하면 실행됩니다.
14: if(id == user_pw) {
15: document.write(user_id+"님 반갑습니다!"); *비밀번호가 일치하면 실행됩니다.
16: } else {
17: alert("비밀번호가 일치하지 않습니다.");
18: location.reload(); *브라우저 새로 고침
19: }
20: } else {
21: alert("아이디가 일치하지 않습니다."); *아이디가 일치하지 않으면 실행됩니다.
22: location.reload();
23: }
24:</script>