Search
🚜

섭씨 화씨 변환 프로그램

MiniPoject : 섭씨 화씨 구하기

문제

사용자로부터 화씨/섭씨 온도를 받아서 다른 온도를 구하는 프로그램
예제문에 나온 대로 나올수 있게 만드시오!
프로그램을 짤 때는 세가지 결과 값이 필요하면 한 번에 모든 것을 만드는 것보다 단계적 접근을 해야 된다. 작업을 세분화하여 단계를 나누고 단계의 목표에 맞는 코드를 작성하는 것이 편하다.
단계별로 접근하되 각 단계의 코드 구현이 되는지 확인하고 넘어가야지, 어디서 잘못된 코드 작성을 했는지 확인 할 수 있다. 만약에 이런 과정없이 한꺼번에 많은 프로젝트를 해버린다면 어디서 잘못되었는지 파악 하지 못한채 많은 시간을 그것을 찾기위해 불필요한 일을 해야할 것이다.
Planning
일단 처음 시작하기에 앞서 단계적으로 어떤 단계가 필요한지 생각해보아야한다. 화씨를 섭씨로 만들수 있는 코드, 그리고 섭씨를 화씨로 만들 수 있는 코드, 마지막으로 그 두부분을 같이 묶어주는 코드가 필요할 것이다. 그리고 여기서는 if문대신에 삼항연산자를 가지고 활용해야된다는 조건으로 시도해 보자.
화씨로 섭씨를 구하는 코드
섭씨를 화씨로 구하는 코드
if문 대신 삼항 연산자를 사용하기

FIRST TRY

코드구현
import java.util.Scanner; public class FtoC2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("화씨 (미국 F)온도를 입력하시오"); // 1.화씨 온도 받기 double temp = sc.nextDouble(); //System.out.prinln(f); // 화씨 -> 섭씨 온도로 변환 double result = 5 / 9 * (temp - 32); System.out.println(result); } }
Java
복사
사용자에게서 입력을 받을수 있는 Scanner객체를 만든다. 이 객체는 힙메모리에 할당이 될것이다.
화씨 온도를 받을 temp 변수 설정
그리고 교과서에 나와있는 식을 토대로 정상 작동하는 지 구현해본다.
결과값
0이 나오면 어딘가가 잘못된 것이다.
구글 검색해보면 실제 값은 37정도가 나온다.
이제부터 디버깅을 해볼것이다.
잘못 될 가능성이 있는 모든 가능성을 생각해본다.
코드 구현은 되었으니 철자가 잘못된 것은 아닐 것이다.
자료타입 문제도 아니라는 것을 육안으로 확인이 가능하다.
수식에 문제가 있을수도 있다. 하지만 이를 확인하기 위해서 TEST클래스를 새로 만들어보자

디버깅 프로세스

수식분해

따로 테스트를 위해서 [FtoCTest] 를 만들고 수식을 테스트 해보자
5 / 9 * (100 - 32) 를 하나씩 분해해본다.
5 / 9 * 68 로 다시 정리할 수 있을것이다.
5 / 9 먼저 테스트 해 본다.
윗 항은 정상이나 5 / 9 에서 문제를 일으킨것 같다.
결국 0곱하기 값이 되니 0이 나오게 되었던 것이다.
해볼수 있는 추론은 정수형이기 때문에 실수형이 계산이 되지 않았을 가능성이 있다.
수정 & 수정된 결과
소수점이 변경되었더니 다른 값이 나왔다. 이것이 원인이었을 가능성이 크다.
실제 구글링 해본 값은 37이었기 떄문에, 실수의 문제였을 가능성이 높다.
기존 코드에서 실수로 다시 변경해보자.

수정된 수식으로 다시 FtoC2로 테스트

빨간칸 안의 수를 소수점으로 바꾸었다.
이제 수식은 문제가 없고, 의도대로 잘 나오고 있는 것 같다.
이제 섭씨를 화씨로 바꾸는 코드를 만들어보자.

섭씨에서 화씨 구하는 코드 작성

화면분할을 할 수 있다??!
원하는 탭을 드래그해서 화면 한 쪽으로 가져가면 창 색이 나누어 지면서 화면 분할 기능을 사용할 수 있다.
화면은 이렇게 분할이 된다. 이렇게 비슷한 기능을 개발할 때 대조하면서 필요한 부분을 수정할 때 효율적일 것 같다.
우리가 원하는 대로 섭씨에서 화씨 구하는 식만 수정하고 결과값을 도출해보자.
결과값
일단 구글링해서 나오는 값이다. 잘 작동하는 것 같다.
이제 두 작업을 하나로 묶어 주는 작업이 남았다.

두 개의 개별코드를 합치고 삼항연산자 사용하기

다시 두 개의코드를 합칠 클래스를 생성한다. [FtoC4]
import java.util.Scanner; public class FtoC4 { public static void main(String[] args) { // 입력기능을 구현해줄 Scanner클래스 Scanner sc = new Scanner(System.in); //1. 화씨 혹은 섭씨 선택받기 // 1번 또는 2번을 받을 것이기 때문에 sc로 객체를 호출하고 nextInt로 받는다. // 입력받은 값을 selectedNum에 할당한다. System.out.println("화씨(1) 또는 섭씨(2)를 선택하시오 : "); int selectedNum = sc.nextInt(); //2. 온도 값을 입력받기 // 온도값은 실수로 받고 표현하기로 했으니 double을 사용한다. // 입력받은 double값을 temp에 저장한다. System.out.println("온도를 선택하시오 : "); double temp = sc.nextDouble(); // //3. 화씨 혹은 섭씨 온도를 받아서 변환하기 // 삼항 연산자 ( a ? b : c )를 사용하여서 참일때는 화씨공식을 거짓일때는 섭씨공식을 사용할 수 있게 한다. double result = selectedNum == 1 ? (5.0 / 9.0 * (temp - 32)) : (9.0 / 5.0 * temp + 32); System.out.println("온도는 : " + result); } }
Java
복사
새로운 클래스 [FtoC4]를 생성하고 책에서 요구되었던 화면모습을 일단 구현해본다.
1.
화씨 혹은 섭씨 선택받기
1번 또는 2번을 받을 것이기 때문에 sc로 객체를 호출하고 nextInt로 받는다. 입력받은 값을 selectedNum에 할당한다.
2.
온도 값을 입력받기 온도 값은 실수로 받고 표현하기로 수정하였으니 double을 사용한다. 입력 받은 double값을 temp에 할당한다.
3.
화씨 또는 섭씨 온도를 받아서 변환하기 삼항 연산자 ( a ? b : c )를 사용하여서 참일 때는 화씨 공식을 거짓일 때는 섭씨 공식을 도출하게 한다.
결과값
화씨에서는 잘 작동중인것 같다.
결과값
섭씨도 마찬가지로 잘 작동하고 있다.
모든 기능이 잘 작동하고 있으니, 좀 더 디테일하게 교재의 요청내용을 그래도 구현하는 일만 남았다.

디버깅후 완성된 코드

마지막 제출 코드
교제에는 출력 멘트가 다른게, if문을 사용하였기 때문이다.
일단 선생님께서는 if문까지 진도가 안나갔으니 삼항연산자로 미션을 주셨기 때문에, 아래 처럼 “온도는”으로 멘트가 대체되었다.
좀 더 깔끔하게 만들기 위해 println에서 ln이 없어야 될 것 같은 곳도 수정을 좀 해주었다.
결과
교제에서 요구한대로 깔끔하게 화씨버전은 작동하고 있다.
섭씨 버전까지 깔끔하다.
Notion 팁: 페이지를 생성할 때는 명확한 제목과 관련된 내용이 필요합니다. 인증된 정보를 사용하고, 페이지 주제를 확실히 하고, 주요 이슈에 대한 의견을 공유하세요.

기본 사항

페이지 생성

새 페이지를 생성하려면 사이드바의 워크스페이스 옆에 위치한 +를 클릭하세요. 그 다음, 페이지에 제목을 지정하고 원하는 내용을 입력하세요.

제목

아래의 방법으로 제목과 소제목을 추가할 수 있습니다.
/제목 또는 /제목1, /제목2,/제목3을 입력하여 원하는 제목 크기를 선택하세요.
#, ##, ###과 같은 Markdown 단축키를 사용하세요.
`Cmd/Ctrl + e로 텍스트를 래핑하여 인라인 코드를 만들 수 있습니다.

토글 목록

토글 목록으로 페이지를 더 심플하게 만들 수 있습니다. 토글 목록을 열려면 화살표를 클릭하세요.

콜아웃 블록

/콜아웃을 입력하고 Enter 키를 누르면 콜아웃 블록을 만들 수 있습니다. 페이지 내에서 중요한 지침, 주의사항, 면책 조항, 팁 등을 강조할 때 활용해 보세요. 이모지 아이콘을 클릭하면 이모지를 변경할 수도 있답니다.

코드 블록

다음의 방법으로 Notion 페이지에 코드를 추가할 수 있습니다.
/코드를 입력하고 Enter 키를 누르세요.
오른쪽 하단 모서리의 드롭다운에서 언어를 선택하세요.
아래 예시를 확인해 보세요.
이 블록 위로 마우스를 가져가면 <b>클립보드에 복사</b> 옵션이 나타납니다!
HTML
복사
코드의 원하는 부분에 댓글을 남길 수 있습니다.

페이지 구성

Notion을 사용하면 폴더를 사용하지 않고도 페이지 내에 페이지를 중첩할 수 있습니다.
/페이지를 입력하고 Enter 키를 누르면 다음과 같이 페이지 내에 하위 페이지가 생성됩니다.

고급 팁

그 밖의 고급 팁은 콘텐츠 작성과 편집 기본 사항 가이드를 확인하세요.