조건문

수경, Sugyeong·2021년 8월 28일
0

JavaScript

목록 보기
6/18
post-thumbnail

  • 조건문
    1. Boolean 타입과 조건문과의 관계

    2. 비교 연산자

    3. 논리 연산자

    🥝 조건문 - 1. Boolean 타입과 조건문과의 관계

    Boolean 타입은 True(참)과 False(거짓)을 판별할 때 사용하는 데이터 타입이다.

    console.log(1 + 1 === 2)	// True
    
    console.log(1 + 1 === 3)	// False

    Js는 대소문자를 판별하기 때문에 주의해야 한다.

    console.log('Sue Coding' === 'Sue Coding')	// True
    
    console.log('Sue Coding' === 'SUE CODING')	// False

    조건문의 구조

  • 만약 (조건이) 참이라면 ~
  • 만약 (조건이) 거짓이라면 ~
  • 참과 거짓이라는 각각의 조건에 따라 실행되는 코드가 다르기 때문에 조건문은 Boolean 타입과 항상 같이 한다.

    < if ~ else >

    let name = 'Gildong Hong'
    
    if (name === 'Sue Lee') {
      console.log('저는 Sue Lee 입니다.')
    } else {
      console.log('저는 Sue Lee가 아닙니다.')
    }
    // name이 Sue Lee -> 저는 Sue Lee 입니다.
    // name이 Gildong Hong -> 저는 Sue Lee가 아닙니다.

    < if ~ else if ~ else >

    let name = 'Coder Lee'
    
    if (name === 'Coder Lee') {
      console.log('저는 Coder Lee 입니다.')
    } else if (name === 'Sue Lee') {
      console.log('저는 Coder Lee가 아닙니다. 저는 Sue Lee 입니다.')
    } else {
      console.log('저는 Coder Lee도 아니고, Sue Lee도 아닙니다.')
    }
    // name -> 'Coder Lee' , return 저는 Coder Lee 입니다.
    // name -> 'Sue Lee' , return 저는 Coder Lee가 아닙니다. 저는 Sue Lee 입니다.
    // name -> 'Gyeong Su' , return 저는 Coder Lee도 아니고, Sue Lee도 아닙니다.

    < if ~ else if ~ else (with return) >
    1)

    function isOkayToDrive(who) {
      // 함수의 인자가 SON -> NOPE
      // 함수의 인자가 DAD -> GOOD
      // 함수의 인자가 GRAND FATEHR -> BE CARFUL
      // who are you
      if (who === "son") {
        return "Nope!"
      } else if (who === "dad") {
        return "Good!"
      } else if (who === "grand father") {
        return "Be careful!"
      } else {
        return "Who are you?"
      }
    }

    2)

    function findGreaterNum(num1, num2) {
      if (num1 > num2) {
        return  "First one is greater!"
      } else if (num1 < num2) {
        return "Second one is greater!"
      } else {
        return "Same!"
      }
    }

    3)

    function checkAge(name, age) {
      if (age < 21) {
        return "Go home, " + name + "!"
      } else {
        return "Nice to meet you, " + name + "!"
      }
    }

    => 이 예시를 푸는 데 시간이 걸렸다. return문에 있는 문자열과 변수인 name을 따옴표("", '')로 따로 분리하여 코드를 쳐야 했다. 하지만 나는 한 번에 따옴표를 붙여서 덩어리로 쳤고 그로인해 Js가 변수 인식을 하지 못해 결과가 나오지 않았었다.

    🥝 조건문 - 2. 비교 연산자

    조건문에서 True(참)과 False(거짓) 판별 시 사용되는 연산자를 비교 연산자 라고 한다.

    연산자사용법예시
    ==피연산자가 같으면 true를 반환한다.3 == var
    "3" == var1
    3 == '3'
    !=피연산자가 다르면 true를 반환한다.var1 != 4
    var2 != "3"
    ===피연산자가 같고 데이터 타입이 같으면 true를 반환한다.3 === var1
    !==피연산자들이 다르거나 데이터 타입이 다른 경우 true를 반환한다.1 + 1 !== 3 // true
    1 + 1 !== 2 // false
    >좌변의 피연산자가 우변의 피연산자보다 크면 true를 반환한다.var2 > var1
    "12" > 2
    >=좌변의 피연산자가 우변의 피연산자보다 크거나 같으면 true를 반환한다.var2 >= var1
    var1 >= 3
    <좌변의 피연산자가 우변의 피연산자보다 작으면 true를 반환한다.var1 < var2
    "2" < 12
    <=좌변의 피연산자가 우변의 피연산자보다 작거나 같으면 true를 반환한다.var1 <= var2
    var2 <= 5

    조건은 소괄호에, 조건이 충족 되었을 시 실행할 코드가 중괄호에 들어간다.
    1)

    if (1 + 1 === 2 ) {
      console.log("1 더하기 1은 2입니다.")
    }	//	true -> 1 더하기 1은 2입니다.

    2)

    function isOddAndGreaterThanTwenty(num) {
      if (num % 2 !== 0 && num > 20) {	// num이 홀수이고 20보다 큰 경우에만 true를 반환
      return true
      } else {
      return false
      }
    }

    🥝 조건문 - 3. 논리 연산자


    논리 연산자설명
    and논리식이 모두 참이면 참을 반환함. (AND 연산)
    or논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산)
    xor논리식이 서로 다르면 참을 반환함. (XOR 연산)
    &&논리식이 모두 참이면 참을 반환함. (AND 연산)
    \\ 논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산)
    !논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (NOT 연산)

    function or(expression1, expression2) {
      if (!(expression1 === false && expression2 === false)) {
        return true
      } else {
        return false
      }
    }

    function or(expression1, expression2) {
      if (!(expression1 === false && expression2 === false)) {
        return true
      } else {
        return false
      }
    }	// ! 와 && 연산자를 사용. 두 인자가 모두 false인 경우에는 false를 반환.
    	// 그 이외의 경우에는 모두 true를 반환.

    function isEitherEvenAndLessThan9(num1, num2) {
      if ((num1 % 2 === 0 || num2 % 2 === 0) && (num1 < 9 && num2 < 9)) {
        return true
      } else {
        return false
      }
    }	// 숫자 중 적어도 하나가 짝수인지 확인 그리고 두 숫자 모두 9보다 작은지를 확인
  • Truthy & Falsy
  • Truthy (참 같은 값)이란 Boolean 데이터 타입의 True는 아니지만 True 처럼 관리되는 값이다.
    Falsy (거짓 같은 값)은 Truthy가 아닌 모든 값들이다. (예: false, 0, -0, 0n, "", null, undefined와 NaN 등)

    let a = 0 // falsy
    
    let b = 100 // truthy
    
    if (a) {
      console.log('I am Falsy')
    } else if (b) {
      console.log('I am Truthy')
    }	// return I am Truthy , 숫자 100이 true 데이터 타입인 것은 아니지만 if문에서 true처럼 실행된다.

    <출처>
    비교 연산자
    논리 연산자
    Truthy & Falsy

    0개의 댓글