자바스크립트, 입문!

자바스크립트, 입문!

핵심만 쏙쏙, 바로 보고 실습하는 JavaScript!

08 조건문, 할까? 말까?

# 조건문, 할까? 말까? ## 미션 조건문의 개요와 각 요소 별 사용법을 익히시오. <img src="http://drive.google.com/uc?export=view&id=1iCS3Pt3z0j9zL44n4aQV8kOkOggMlp0y" alt="홍팍-자바스크립트-조건문-미션"> ## 00:36 조건문이란? 조건에 따라 실행 구문을 결정하는 문법. 우리가 다향한 상황을 고려하여 점심 메뉴를 고르듯, 컴퓨터 또한 다양한 상황을 고려하여 실행을 결정할 수 있다. 조건문은 그 종류가 다양하고, 이와 함께 다양한 연산자들도 사용된다. ## 01:11 if 문 if 문은 소괄호 사이에 조건식, 중괄호 사이에 수행 구문이 적힌다. 조건식이 참이면, 중괄호 내부가 수행된다. ``` if (조건식) { 조건식이 참이면, 수행 } ``` 성인인 경우에 맥주를 시키는 의사 코드(pseudo code)는 다음과 같다. ``` if (age > 18) { 맥주 ㄱ } ``` ## 01:35 if-else 문 if 문의 조건식이 거짓인 경우에 특정 동장을 수행하려면 어떻게 해야할까? else 문을 쓰면 된다. else 문은 if 문과 쌍을 이루어 작성된다. ``` if (조건식) { 조건식이 참이면, 수행 } else { 조건식이 거짓이면, 수행 } ``` 다음은 성인은 맥주를, 그 외는 콜라를 시키는 코드이다. ``` if (age > 18) { 맥주 ㄱ } else { 콜라 ㄱ } ``` ## 01:54 else-if 문 성인이 아니지만 다이어트 중인 경우, 제로 콜라를 주문하게 해보자. 어떻게 해야할까? else-if 문을 쓰면 된다. 다음 코드는 조건식A가 거짓인 경우, else-if 문을 통해 다시 조건식B를 검사하게 된다. 참인 경우 중괄호 내부가 수행된다. 거짓이라면 다음 else로 실행 흐름이 넘어간다. ``` if (조건식A) { 조건식A가 참이면, 수행 } else if (조건식B) { 조건식B가 참이면, 수행 // 이미 조건식A는 거짓인 상태 } else { 모든 조건식이 거짓인 경우, 수행 } ``` 따라서 다음 코드는 성인은 맥주, 성인이 아니면서 다이어트 중인 경우엔 제로 콜라, 그외는 그냥 콜라를 주문한다. ``` if (age > 18) { 맥주 ㄱ } else if (다이어트중?) { 제로 콜라 ㄱ } else { 콜라 ㄱ } ``` ## 02:32 비교 연산자 비교 연산자는 두 값을 비교하여 참 거짓을 반환한다. 비교 연산자는 조건문 작성에 빼놓을 수 없는 요소다. 기본이 되는 연산자는 다음과 같다. ``` console.log(7 === 3); // 7은 3과 같은가? => false console.log(7 !== 3); // 7은 3과 다른가? => true console.log(7 > 3); // 7은 3보다 큰가? => true console.log(7 >= 3); // 7은 3보다 크거나 같은가? => true console.log(7 < 3); // 7은 3보다 작은가? => false console.log(7 <= 3); // 7은 3보다 작은가? => false ``` ## 02:59 논리 연산자 - AND, OR, NOT 논리 연산자 또한 비교 연산자와 마찬가지로 조건문에 자주 활용된다. 논리 연산자는 3가지 AND, OR, NOT이 있다. 이를 활용하여 더욱 풍부한 조건식을 만들 수 있다. 다음은 그 예로, 성적에 따라 학점을 부여하는 코드이다. if 문의 조건식에선 AND 연산을, 다음 else-if 의 조건식에선 OR 연산을 사용하였다. ``` // 수학과 영어 과목에 따라 학점을 부여하는 예 if (math >= 90 && eng >= 90) { grade = "A"; // 두 과목 모두 90점 이상 => A 학점 } else if (math >= 90 || eng >= 90) { grade = "B"; // 한 과목이라도 90점 이상 => B 학점 } else { grade = "C"; // 그외 => C 학점 } ``` <img src="http://drive.google.com/uc?export=view&id=1iC_RhaSqMjsmgUxfXFFOyNKnbsaw464s" alt="홍팍-자바스크립트-조건문-비교연산자-논리연산자"> AND 연산은 양쪽 모두 참이면 참, 아닌 경우 거짓을 반환한다. ``` console.log(true && true); // true console.log(true && false); // false console.log(false && true); // false console.log(false && false); // false ``` OR 연산은 둘 중 하나만 참이면 된다. 둘다 거짓인 경우엔 거짓이다. ``` console.log(true || true); // true console.log(true || false); // true console.log(false || true); // true console.log(false || false); // false ``` NOT 연산은 기존값을 반대로 바꾼다. ``` console.log(!true); // false console.log(!false); // true console.log(!(3 > 2)) // false ``` 논리 연산자간 우선순위는 NOT > AND > OR 순이다. ## 04:40 switch 문 switch 문은 조건문의 변형이다. 이거 몰라도 조건문 작성할 수 있다. 하지만 알아두면 좋다. 먼저 기존 조건문이 다음과 같이 있다 하자. ``` const color = "green"; if (color === "red") { console.log("✋ 멈추시오!"); } else if (color === "yellow") { console.log("⚠️ 주의하시오!"); } else if (color === "green") { console.log("🚗 이동하시오!"); } else { console.log("🙅‍♀️ 잘못된 색상이오.."); } ``` 이를 switch 문으로 바꾸면 다음과 같다. 소괄호 사이에 비교대상을 넣고, 다양한 값을 케이스에 담아 실행을 구분한다. 각 케이스 끝에 break 문이 있음을 유의하자. 자세한 실행 흐름은 다음 실습에서 다시 다루겠다. ``` const color = "green"; switch(color) { // color => 비교할 값 case "red": // color === "red" console.log("✋ 멈추시오!"); break; case "yellow": // color === "yellow" console.log("⚠️ 주의하시오!"); break; case "green": // color === "green" console.log("🚗 이동하시오~"); break; default: // 일치 color가 없는 경우 console.log("🙅‍♀️ 잘못된 색상이오~"); break; } ``` ## 05:38 삼항 연산자 삼항 연산자도 조건문의 변형이다. 몰라도 된다. 하지만 알면 좋다. 삼항 연산자는 조건식이 참인 경우의 반환값과 거짓인 경우의 반환값을 지정한다. ``` (조건식) ? 참인_경우_반환할_값 : 거짓인_경우_반환할_값; ``` 따라서 다음 코드는 무게가 100보다 작은 경우엔 "OK~"를, 아닌 경우엔 "NOPE!"을 변수 result에 담는다. ``` let result = (weight < 100) ? "OK~" : "NOPE!"; ``` 위 코드를 기존 조건문으로 작성하면 다음과 같다. 어떠한가? 삼항 연산자가 더 간결하지 않은가? ``` let result = undefined; if (weight < 100) { result = "OK~"; } else { result = "NOPE!"; } ``` ## 구글링 훈련하기 🔥 - 자바스크립트 조건문 - 자바스크립트 if 문 - 자바스크립트 if-else 문 - 자바스크립트 else-if 문 - 자바스크립트 비교 연산자 - 자바스크립트 논리 연산자 - 자바스크립트 switch 문 - 자바스크립트 삼항 연산자