DAY 2 . 조건문 , 문자열

냐하호후·2021년 6월 16일
0

조건문

FizzBuzz

function fizzBuzz(num) {
  if (num %3 === 0 && num %5 ===0){
   return  'FizzBuzz'
  }
  else if (num %5 === 0){
    return 'Buzz'
  }
  else if (num %3 === 0){
    return 'Fizz'
  }
  else {return 'No FizzBuzz'}
}

그대로 썼는데 순서를 바꿨더니 적용 되었다. 벤다이어그램을 생각하며 교집합을 먼저 빼내도록 하자!

<해설>
조건문 작성은 순서가 매우 중요합니다. 특히 서로 "겹치지 않고 빠짐없이 나눠지지 않는" 경우가 그렇습니다. 3의 배수인 것과 5의 배수인 것은 겹치는 것이 있습니다. 15인 경우가 그렇습니다. 이렇게 두 조건이 겹치는 경우는 따로 분리해서 (3의 배수인 경우 && 5의 배수인 경우) 에만 특정 코드가 작동할 수 있도록 조건문을 작성해야 합니다.
모든 보기가 잘 작성했는데, 왜 문제가 풀리지 않을까요? 3의 배수인 경우, 혹은 5의 배수인 경우를 먼저 검사하면 (3의 배수인 경우 && 5의 배수인 경우)에 'FizzBuzz'가 나와야 하는데, 'Fizz' 혹은 'Buzz'를 리턴하게 되기 때문입니다.
그래서 (3의 배수인 경우 && 5의 배수인 경우)를 가장 먼저 검사한 2번이 정답입니다.

=== 을 사용해야하는데 =으로 사용해서 틀린 경우도 많았다
비교연산자를 사용할 때에도 (1<= month <=12)이렇게 쓰면 안되는데 한번에 붙여서 써서 틀렸다. 올바른 방법은 (1<= month && month <=12)이다.
!하나를 안써서 틀린 문제도 있다 문제를 꼼꼼하게 읽자!

문자열

dropLetters

function dropLetters(num, str) {
return str.slice(num,str.length)
}

개발자도구를 만지다가 나왔다.

문자열과 숫자를 같이 return값으로 쓸 때 +를 안붙여서 틀린 것도 있다.

profile
DONE is better than PERFECT

0개의 댓글