[JavaScript] (문제풀이) isEitherEvenAndLessThan9 (feat. 조건문, 논리연산자)

이태권 (Taekwon Lee)·2022년 5월 5일
0

문제

isEitherEvenAndLessThan9 함수를 작성하세요.

  1. 함수의 인자로 숫자 두개가 주어졌을때 함수는 2가지 조건을 검사합니다.
  2. 우선 두 숫자 중 적어도 하나가 짝수인지 확인합니다.(c1)
  3. 그리고 두 숫자 모두 9보다 작은지를 확인합니다.(c2)
  4. 두 조건을 모두 만족하는 경우만 true를 반환합니다.

접근 방식

  1. 우선 함수의 인자가 모두 숫자여야 하므로 typeof를 사용해 'number'인지 판별한다.
  2. 문제의 2번 조건을 c1, 3번 조건을 c2라 하면
    둘 다 만족해야 하므로 if (c1 && c2)의 형태여야 한다.
  3. c1, c2는 각각 논리연산자 '||'와 '&&'을 이용한다.

틀린 풀이

아래와 같이 풀면, 외부 if 문의 return 값이 존재하지 않아
내부 if 문이 false가 될 경우(둘 중 하나가 9보다 크거나, 둘 다 홀수일 경우)
undefined가 반환 된다.

function isEitherEvenAndLessThan9(num1, num2) {
  if (typeof num1 === 'number' && typeof num2 === 'number') {
    if ((num1 % 2 === 0 || num2 % 2 === 0) && (num1 < 9 && num2 < 9)) {
        return true;
    }
  }
  else return false;
}

let output = isEitherEvenAndLessThan9(2, 34);
console.log(output); // undefined 출력

정답

따라서 아래와 같이 외부 if 문에 대해서도 return 값을 true로 주면 해결!

function isEitherEvenAndLessThan9(num1, num2) {
  if (typeof num1 === 'number' && typeof num2 === 'number') {
    if ((num1 % 2 === 0 || num2 % 2 === 0) && (num1 < 9 && num2 < 9)) {
        return true;
    }
    return false;
  }
  else return false;
}

참고 자료

(MDN) typeof - JavaScript
(MDN) if...else - JavaScript
(w3schools) JavaScript if else else if

profile
(Backend Dev.) One step at a time

0개의 댓글