3. 조건 비교
세 번째 살펴볼 코딩의 기본 기능은 조건 비교이다.
이 내용은 이미 코딩수업 #3에서 기본적인 내용을 다룬 것이다.
당시에는 두 가지 갈림길에서의 코드 작성법만을 배웠다면, 이제는 다양한 조건에 대한 수행 부분도 추가하여 공부해 보자.
두 가지의 선택은 if와 else에서 각각 수행된다.
만약 어떤 조건이 맞는다면 A를 수행하고,
조건이 맞지 않는다면 B를 수행하라고 명령을 내리는 것
즉 코딩의 형태로 변화시키면 if와 else 명령어를 사용하여
if (조건) A; // 조건이 참이라면
else B; // 조건이 거짓이라면
위와 같이 작성할 수 있을 것이다.
앞선 로또 번호 추출 예제에서, 새롭게 선택한 번호가 이전의 번호와 같은지를 확인하는 과정이 있었다.
그 경우처럼 만일 번호가 이전에 뽑았던 번호와 같다면 다시 다른 번호를 뽑고,
아니면 이 번호를 계속 선택한 것으로 하는 경우와 같이, 갈림길에서의 코드 작업에 바로 조건 비교의 방법이 사용되어야 한다.
관련 샘플 코드를 하나씩 작성해 보고 다음 수업에서 관련 예제를 풀어보도록 한다.
if에 대한 코드는 지난 코딩 수업#3의 내용을 다시 가져오고 조건을 좀 더 추가해 보겠다.
당시의 조건은 아래와 같다.
- yr라는 변수에 가입을 원하는 사람이 태어난 연도가 지정이 되고, (대입, 예를 들어 yr=1975)
- cy라는 변수에 현재의 연도가 지정이 되어 있다고 하자. (대입, 예를 들어 cy=2018)
- 생일을 따지는 것은 복잡하니 일단 단순하게 cy-yr이 50을 넘는다면 가입이 가능하고, (조건 비교)
- 그렇지 않다면 가입 신청을 반려한다고 하자.
----
여기에 한 가지를 추가해 보자
- 나이가 40부터 50세까지의 사람들의 경우 준회원 대우를 한다고 해보자.
당시의 코드에 붉은색으로 표시된 부분을 추가하여야 한다.
var yr=1975; // 태어난 해를 입력한 부분
var cr=2018; // 올해
if (cr-yr>=50) document.write("가입을 환영합니다.");
else if (cr-yr>=40) document.write("준회원으로만 가입이 가능합니다.");
else document.write("죄송합니다. 50살이 되는 해부터 가입할 수 있습니다.");
위의 보기처럼 1975년 생으로 43세인 경우 "준회원으로만 가입이 가능합니다."라는 메시지를 보여준다.
변수 yr을 바꾸어가며 각 경우에 어떤 메시지가 나오는지 테스트해보시길 바란다.
또 다른 경우가 있을 수 있다.
만일 로또 당첨 확률을 구할 때
1등 확률을 구하는 방법은 A,
2등 확률을 구하는 방법은 B,
3등 확률을 구하는 방법은 C,
4등 확률을 구하는 방법은 D
와 같이 동시에 여러 가지 조건에 따라 다른 일을 수행할다고 하면
switch(몇 등) {
case 1:
A; // 1등 확률 계산법
break;
case 2:
B; // 2등 확률 계산법
break;
case 3:
C; //3등 확률 계산법
break;
case 4:
D; //4등 확률 계산법
break;
}
위와 같이 switch와 case 명령어를 통하여 조건비교 및 이에 따른 작업을 수행할 수 있다.
간단한 예제로~~~
만일 빨간 신호등이면 멈추고, 푸른 등이면 가고, 노란 등이면 주의하라는 명령을 내보내는 프로그램을 만든다고 하자.
var light="red";
switch (light){
case "red":
document.write("멈추시오.");
break;
case "green":
document.write("가시오.");
break;
case "yellow":
document.write("주의하시오.");
break;
}
위의 예처럼 light가 red인 경우
case "red" 아래의 명령어가 수행된다.
이 명령은 break; 에 도달할 때까지만 수행되고, 다른 조건의 경우들은 수행되지 않는다.
이상으로 3가지 코딩의 주요 기능을 설명하였고, 다음 예제부터는
변수와 대임 / 반복 / 조건 비교 세 가지 기능을 적절히 섞어서 제작되는 다양한 예제를 살펴보도록 하겠다.