• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

Chapter12 Calculaotr.jsx 질문

23.02.01 13:56 작성 조회수 175

0

안녕하세요, 소플님.

 

Chapter12 Calculaotr.jsx 파일에 있는

섭씨, 화씨 온도 변환 코드와

관련해서 문의드리고 싶은 부분이 있어 글을 남깁니다.

 

 

 

만약 사용자가 섭씨 온도 입력한에 섭씨 온도를 입력했다고 했을 때

온도는 temperature 변수에 저장되고, 섭씨 온도를 입력했기에

celsius란 변수에 저장됩니다. 또한 scale은 c 입니다.

 

사용자가 섭씨 온도를 입력했으니 화씨 온도로 바꿔줘야 할 차례인데

이 부분부터 잘 이해가 가지 않습니다.

 

const  celsius =
    scale === "f" ? tryConvert(temperature, toCelsius) : temperature;

 

저는 위의 코드를 섭씨 온도를 화씨 온도로 바꿔주는 부분으로 이해했습니다.

하지만 그러기 위해선 scale === f 로 두고, 

tryConvert(temperature, toCelsius) 로 두는 게 아닌

 

const  celsius =
    scale === "c" ? tryConvert(temperature, toFahrenheit) : temperature;

위의 코드처럼 scale을 c로 두고

tryConvert(temperature, toFahrenheit) 로 바꿔줘야

사용자가 입력한 섭씨 온도를 화씨 온도로 바꿔줘.가 되는 걸로 이해했습니다.

 

 

scale을 c로 둔 이유는 사용자가 섭씨 온도를 입력하면

온도는 temperature 변수, 그리고 celsius 변수에 저장되며

celsisus 변수에 저장되면서 동시에 위의 코드에 의해 scale은 c가 되기에

scale을 c로 뒀습니다.

 

const  celsius =
    scale === "c" ? tryConvert(temperature, toFahrenheit) : temperature;

 

그래서 위에처럼 코드를 작성해야

섭씨 온도를 화씨 온도로 바꿔주는 거라고 생각했습니다.

 

혹시 제가 어떤 부분에서 잘못 생각하고 있는지 알 수 있을까요?


답변 1

답변을 작성해보세요.

1

안녕하세요, 소플입니다.

제가 질문을 정확하게 이해하지 못했는데, 우선 해당 부분에 대해서 설명을 적어보겠습니다.

사용자가 섭씨 입력란에 입력한 경우 scalec가 되고,
화씨 입력란에 입력한 경우 scalef가 됩니다.

그리고 입력한 온도의 값은 섭씨, 화씨와 상관없이 temperature에 저장됩니다.

그리고 이렇게 입력받은 값을 각각 섭씨와 화씨로 변환해서 화면에 보여줘야 하는데,
그 때 사용하는 코드가 바로 아래 코드입니다.

const celsius = scale === "f" ? tryConvert(temperature, toCelsius) : temperature;
const fahrenheit = scale === "c" ? tryConvert(temperature, toFahrenheit) : temperature;

첫 번째 줄의 코드는 입력받은 온도의 단위가 화씨일 경우(scale === "f") 섭씨로 변환(tryConvert(temperature, toCelsius))하고,
그게 아닐 경우(이미 섭씨 온도값인 경우) 온도 값을 그대로 반환하여 celsius에 저장하게 됩니다.

두 번째 줄의 코드는 입력받은 온도의 단위가 섭씨일 경우(scale === "c") 화씨로 변환(tryConvert(temperature, toFahrenheit))하고,
그게 아닐 경우(이미 화씨 온도값인 경우) 온도 값을 그대로 반환하여 fahrenheit에 저장하게 됩니다.

이렇게 해서 최종적으로 섭씨와 화씨 온도가 화면에 표시되게 됩니다.

혹시 설명을 보고도 이해가 가지 않는 부분이 있다면 추가로 질문 남겨주시기 바랍니다!