본문은 책자에 들어가는 내용 중 일부입니다.
책자를 마무리해서 우선 심사를 넣었는데 한번에 통과하면 좋겠군요 ㅎ
조건문 1형식 : if(조건식){ … } |
컴퓨터가 조건식에 따라 참, 거짓을 판단해서 참인 경우 코드블록 {…}을 실행합니다. |
예시) chocolet=10; if(chocolet>=8){ console.log("초콜렛이 8개 이상!"); } |
초콜렛이 10개가 있다고 칩시다. 철수는 초콜렛이 8개 이상이면 1개를 먹기로 결정했는데요. 철수가 초콜렛을 먹으려면 초콜렛이 8개 이상인가?라고 판단을 해야 한다고 칩시다.
이렇게 특정 조건에 따라 판단하여 처리하는 기능을 조건문이라고 하는데요.
조건을 판단하기 위해 참(true), 거짓(false)을 판단하는 분명한 기준을 제시해야 합니다.
(조건식)에는 조건을 검사할 수 있는 식이 제공되어야 하는데요.
다음 중 조건이 될 수 있는 것은 분명하게 참, 거짓을 알 수 있는 것만 가능합니다.
상자안에 사과가 10개인가?( o : 분명한 기준이 있기 때문에 조건 가능 ) 영희가 머리가 긴가? ( x : 머리가 길다는 기준이 없어 조건 불가 ) 오늘 기상 시간은 오전 7시 이전인가? ( o : 7시 이전이라는 분명한 기준, 조건 가능 ) |
이때 조건 연산자라는 것이 사용됩니다.
아래 코드에서 조건은 chocolet라는 변수의 값이 숫자10이고,
chocolet >= 8 라는 조건식은 chocolet 이 8보다 크거나 동일한가?라는 조건인데요,
10은 8보다 크기 때문에 이 경우 참이 되어 코드 블록 내부가 실행됩니다.
chocolet=10; if(chocolet >= 8){ } |
코드로 만나보겠습니다.
chocolet=10; if(chocolet>=8){ console.log("초콜렛이 8개 이상!"); } |
이 경우 초콜렛이 10개이기 때문에 코드블럭이 실행되어 문구가 출력되었습니다.
하지만 아래 코드는 어떨까요?초콜렛이 7개이기 때문에 조건문이 거짓이 됩니다.
그래서 코드 블록이 전혀 실행되지 않지요.
chocolet=7; if(chocolet>=8){ console.log("초콜렛이 8개 이상!"); } |
여기서 조건을 판단하는 부분은 (chocolet>=8) 뿐이고, >= 기호를 비교식이라고 부릅니다.
비교식에는 몇가지 종류가 있는데요. 대표적인 것은 6가지입니다.
A == B : A가 B와 같은가? A != B : A가 B와 다른가? A > B : A가 B보다 큰가? A < B : A가 B보다 작은가? A >= B : A가 B보다 크거나 같은가? A <= B : A가 B보다 작거나 같은가? |
A와 B가 숫자일 경우에는 수의 크기로 비교를 합니다. 하지만 A와 B가 문자열인 경우는 약간 상이합니다. ABCD, 또는 가나다순으로 비교를 하거든요
아래 코드는 문자열 '사과' 와 문자열 '배' 를 비교합니다.
문자열 비교에서는 사전에서 뒤에 나올 만한 문장이 더 크기 때문에 아래 문장은 참이 됩니다.
str1='사과'; str2='배'; if(str1 > str2){ console.log(str1 + '가 ' + str2 + ' 보다 사전 뒤에 나옴'); } |
그래서 코드블록 내부가 실행되어 결과를 출력합니다.
하지만 비교문의 조건이 반대라면 조건식이 거짓이 되어 내용을 출력하지 않습니다.
str1='사과'; str2='배'; if(str1 < str2){ console.log(str1 + '가 ' + str2 + ' 보다 사전 뒤에 나옴'); } |
또한 조건식은 2개 이상의 조건이 모두 일치해야 처리하는 AND 연산과
2개 이상의 조건 중 1개라도 맞으면 처리 가능한 OR 연산을 사용할 수 있습니다.
“A조건 AND B조건” 이라 표기하면 A조건도 맞아야 하고 B조건도 맞아야 하는 것이지요.
그리고 “A조건 OR B조건” 이라 표기하면 A조건이 맞거나 또는 B조건이 맞으면 된다는 표현이라 하나만 조건이 맞아도 됩니다.
자바스크립트는 AND 영어단어 대신 && 기호를 사용하며 (shift+7로 한 글자씩 입력),
OR 영어단어 대신 || 기호를 사용합니다. ( shift+원화(\) 키로 한 글자씩 입력 )
만일 다음과 같은 조건을 판단해야 한다고 합시다.
나이가 25세이고, 경력이 2년 이상인 사람을 모집합니다.
이 경우 AND 연산을 사용해야 합니다.
2가지 조건을 모두 만족해야 하기 때문인데 코드는 아래와 같습니다.
age=25; careeryear=2; if(age==25 && careeryear>=2){ console.log("모집합니다."); } |
조건문을 차례대로 보면 다음 순서로 조건이 구성된 것을 보실 수 있습니다.
age==25 ( 나이가 25세 )
&& ( 그리고 )
careeryear>=2 ( 경력이 2년 이상 )
그래서 이 조건에 맞기 때문에 결과가 출력되었습니다.
다른 상황을 더 보겠습니다.
K기업에 입사한 참자가는 코딩시험을 보는데 3개의 문제가 주어졌습니다.
세개의 문제는 10~100점의 평가 점수가 주어지며,
3문제 합계가 180점 이상이거나 특정 1과목이 90점 이상이면 합격입니다.
이경우 합격의 조건이 4가지입니다.
조건1) 3과목 모두 합쳐서 180점 이상
조건2) 과목1, 90점 이상
조건3) 과목2, 90점 이상
조건4) 과목3, 90점 이상
if( score1 + score2 + score3 >= 180 || score1 >= 90 || score2 >= 90 || score3 >= 90 ){ console.log('합격입니다.'); } |
이 경우는 아래와 같이 해석되기 때문에
4가지 조건 중 아무것이나 1개만 충족되면 합격입니다 문구가 표시됩니다.
score1 + score2 + score3 >= 180 ( 코딩문제1,2,3을 점수를 더한 합계가 180점 이상 )
|| ( 또는 )
score1 >= 90 ( 코딩문제1의 점수가 90점 이상 )
|| ( 또는 )
score2 >= 90 ( 코딩문제2의 점수가 90점 이상 )
|| ( 또는 )
score3 >= 90 ( 코딩문제3의 점수가 90점 이상 )
필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)
도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~
다음게시글 : https://itadventure.tistory.com/483