문제풀이_조건문

future·2020년 12월 8일
0

문제풀이

목록 보기
1/6

#convertScoreToGradeWithPlusAndMinus

점수를 입력받아 점수에 해당하는 등급을 리턴

  • 만약 주어진 점수가 100을 초과하거나 0 미만인 경우, 문자열 'INVALID SCORE'를 리턴
  • 각 등급의 최고 점수보다 7점 이하인 경우, 등급과 함께 '-'를 리턴
  • 각 등급의 최저 점수보다 8점 이상인 경우, 등급과 함께 '+'를 리턴
  • F+ 와 F- 는 존재하지 않음
function convertScoreToGradeWithPlusAndMinus(score) {
  
1. 각 점수별로 grade를 지정해준다.
  
  let grade = '';
  
  if (score > 100 || score < 0) {
    return 'INVALID SCORE';
  } else if (score === 100) {
    return 'A+';
  } else if (score >= 90) {
    grade = 'A';
  } else if (score >= 80) {
    grade = 'B';
  } else if (score >= 70) {
    grade = 'C';
  } else if (score >= 60) {
    grade = 'D';
  } else {
    grade = 'F';
  }

2. grade 뒤에 붙는 기호를 지정해준다.
   1의 자리에 따라 기호가 다르게 들어가므로 두자릿수의 score를 10으로 나눠준다.

  let sign = '';
  let unitsdigit = score % 10;
  
  if (unitsdigit >= 8 && unitsdigit <= 9) {
    sign = '+';
  } else if (unitsdigit >= 0 && unitsdigit <= 2) {
    sign = '-';
  } else {
    sign = '';
  }

3. 'F'를 제외한 나머지 grade에 sign을 더해준다.
   이후 최종 grade 값을 리턴해준다.

  if (grade !== 'F') {
    grade = grade + sign;
  }
  return grade;
}

#addOneSecond

시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메시지로 리턴

  • string 타입을 리턴
  • 1초 뒤에 {hour}시 {minute}분 {second}초 입니다 형식으로 리턴
function addOneSecond(hour, minute, second) {

1. 초(second)의 경우
   59초인 경우, 1분이 더해지면서 초는 0으로 초기화된다.
   59초가 아닌 경우, 1초가 늘어난다.

  if (second === 59) {
    minute = minute + 1;
    second = 0;
  } else {
    second = second + 1;
  }

2. 분(minute)의 경우
   60분이 되면 1시간이 더해지면서 분은 0으로 초기화된다.

  if (minute === 60) {
    hour = hour + 1;
    minute = 0;
  }

3. 시간(hour)의 경우
   24시가 되면 시는 0으로 초기화된다.

  if (hour === 24) {
    hour = 0;
  }

4. Template literal을 이용하여 문자열을 리턴해준다.

  return `1초 뒤에 ${hour}시 ${minute}분 ${second}초 입니다`;
}

#isFalsy

임의의 값을 입력받아 falsy 값인지 여부를 리턴

function isFalsy(anything) {

1. 조건문 속 값이 falsy할 경우 true가 출력된다.

  if (anything === 0 || anything === undefined || Number.isNaN(anything) || anything === '') {
    return true;
  }
  return false;
}

2. Number.isNaN() → 주어진 값이 NaN인지 판별한다.

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0)       // true
profile
get, set, go!

0개의 댓글