ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript 조건문 - 2023. 04. 19 [DAY 7]
    공부/회고 2023. 4. 20. 08:52
    반응형

    자바스크립트의 필수 과정인 조건문에 대해 학습하였다

     

    어제와 동일하게 페어들과 중간 퀴즈를 진행하였고, 어제보다 헷갈리는 문제는 딱 한 가지가 있었다.

     

    1. 시, 분, 초를 입력받으면 1초 뒤의 시간을 리턴하는 문제

     

    function addOneSecond(hour, minute, second) {
      if (second >= 0 && second < 60) { // 먼저 초 단위 계산
        second = second + 1;
        if (second >= 60) { // 1초 올렸을 때 60초가 된다면 0초로 변환
          second = 0;
          minute = minute + 1; // 1분 추가
          if (minute >= 60) { // 1분 올렸을 때 60분이 된다면 0분으로 전환
            minute = 0;
            hour = hour + 1; // 1시간 추가
            if (hour >= 24) { // 1시간 올렸을 때 24시간이 된다면 0시간으로 전환
              hour = 0;
            }
          }
        }
      return "1초 뒤에 " + hour + "시 " + minute + "분 " + second + "초 입니다";
      }
    }

     

    > 23:59:59 를 입력받으면 0:0:0 이 된다.

     

    처음에는 if (second >= 60) 을 >으로 입력해서 오류가 발생했다. 어떤 오류인지 못 찾겠어서 chatgpt를 이용해 보았는데 >=을 입력하라고 해서 입력하였더니 정상 출력 결과가 나왔다.

     

    아래는 chatgpt는 리턴문을 아예 새로 작성했다.

    return "1초 뒤에 " + (hour === 24 ? "0" : hour) + "시 " + minute + "분 " + second + "초 입니다.";

     

    hour === 24 ? "0" : hour는 삼항 연산자(ternary operator)를 사용한 표현식입니다. 이 표현식은 다음과 같은 의미를 가집니다:
    만약 hour가 24와 같다면, 즉 24시가 되었다면, "0"을 반환하고, 그렇지 않으면 hour의 값을 반환합니다.
    이 표현식은 조건에 따라 다른 값을 반환해야 할 때 사용됩니다. if-else문의 축약형으로 생각할 수 있습니다.
    위의 함수에서 hour가 24일 때는 "0시"로 변경해야 하기 때문에, hour === 24 조건에서 "0"을 반환하고, 그렇지 않으면 hour 값을 반환합니다.

    반응형

    댓글

Designed by Tistory.