[TIL] 조건문

조건문(Conditional Statement)

조건을 판별하여 특정한 조건을 만족 시 어떤 작업을 수행하고 싶을 때 사용하는 구문. if, else if, else로 경우를 나누어서 원하는 작업을 수행할 수 있다.


문법

조건문은 if로 시작한다. if, else if 뒤의 괄호에 조건이 오고, 조건이 될 수 있는 값은 Boolean이다. Boolean의 값이 참(true)이라면 조건이 담긴 괄호 다음의 중괄호 구문이 실행된다.

(조건)에는 Boolean의 형태로 결괏값이 나오는 비교구문이 들어간다

if(조건1) { 
// 조건 1이 true일 경우 실행
} else if(조건2) {
// 조건 1은 false, 
// 조건 2는 true일 경우 실행
} else { 
// 조건 1과 조건 2가 false일 경우, 즉 그 외의 경우에 실행
}

두 가지 조건이 한 번에 적용되는 경우, if문을 중첩해서 사용해도 되지만 논리 연산자를 사용하여 간단하게 해결할 수 있다.


if(isStudent && isFemale) // 학생이면서, 여성일 경우
if(isStudent || isFemale) // 학생이거나, 여성인 경우

Truthy & Falsy

참(true)인 값과 거짓(false)인 값을 Truthy, Falsy로 나눌 수 있다. Javascript에서 대표적인 Falsy 값들은 알아두면 좋다.


1. undefined  
2. null
3. 0       // Number타입의 0
4. -0      // Number타입의 -0
5. NaN     // Not A Number의 약자로 '숫자가 아니다'라는 의미를 담고 있다
6. false   // Boolean타입의 false
7. ''      // 빈 문자열 ''
8. ""      // 빈 문자열 ""

위 8개를 제외한 모든 값들은 true의 값을 지닌다. 즉, Truthy하다.

조건문은 if, else if 뒤에 있는 괄호 속의 조건이 참일 경우에만 실행되므로, Falsy 값이 들어가면 실행이 되지 않는다.

if(null) { // Falsy
console.log('Hello Wolrd')
} // undefined     -> 아무것도 출력되지 않는다

if('null') { // 문자열 'null'은 Truthy
console.log('Hello World')
} // 'Hello World' -> 조건을 충족하여 'Hello World'를 출력한다
 

Boolean 형태의 리턴

비교 연산자의 출력은 Boolean 형태로 된다. 바로 리턴을 해주면, Boolean 형태로 출력이 될 함수는 조건문을 써줄 필요가 없다.


function isAdult(age) {
 if(age >= 20) {  // 20살 이상이면
   return true;   // true를 출력
 } else {         // 그 외에, 즉 20살 미만이라면
   return false;  // false를 출력
 }
}
isAdult(20) // true
isAdult(18) // false

첫 번째 조건인 (age >= 20)이 true라는 결과를 출력하기 때문에, if문이 실행되었다. 따라서 다음과 같이 수정할 수 있다.


function isAdult(age) {
 return age >= 20
}
isAdult(23) // true
isAdult(15) // false

삼항 연산자 '?' & 조건문

조건부 연산자라고 불리기도 하고, 삼항 조건 연산자라고 부르기도 하는 삼항 연산자는 보통 조건문의 단축형으로 활용된다.

  • 삼항 연산자의 문법

조건 ? A : B // 조건이 참이라면 A를, 조건이 거짓이라면 B를 실행
조건에 따라 다른 출력값을 나타내는 게 조건문과 동일하여, 조건문을 삼항 연산자를 활용해 축약해서 사용할 수 있다.


let age = 20;
if(age >= 20) {
  return '성인입니다'; // 위의 조건에 맞기 때문에 출력
} else {
  return '성인이 아닙니다';
} // '성인입니다'

age >= 20 ? '성인입니다' : '성인이 아닙니다' // '성인입니다' -> 조건이 참이므로 앞에 있는 명령 실행 

좋은 웹페이지 즐겨찾기