클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

메소드 11 - 사칙연산과 큰 수 비교 실습하기 본문

프로그래밍 언어/자바

메소드 11 - 사칙연산과 큰 수 비교 실습하기

huenuri 2024. 8. 15. 18:34

이제 수업 시간에 배운 예제들도 한번 씩 다시 풀어보고 복습해보려고 한다. 너무 쉽거나 중복되는 문제는 제외하고 풀만한 문제를 뽑아보았다. 사실 처음 학습할 때는 기본 내용을 익히는데 중점을 두었기에 코드를 따라 치거나 그대로 갖다 붙일 때가 많았다.

이런 식의 공부는 내 것이 되지는 못하니 스스로 생각하며 풀 수 있는 시간이 필요하다.


 

 

 

 

1. 사칙연산 메소드 만들기

앞에서 사칙연산 메소드를 만들어보았으나 여기서는 연산을 char형으로 만드니 좀더 심화된 내용이라 할 수 있다. 예제를 변형하여 궁금한 것들을 해결해볼 것이다.

 

 

하지만 나눗셈을 소숫점으로 구하고 싶어 형변환을 하자 오류가 떴다. 이 문제를 어떻게 해결할 수 있을까?


 

 

 

실수로 연산하고 싶다면

 

드디어 값이 제대로 출력되었다. 이 함수는 처음 보는 건데 이해하기가 무척 어려웠다. 그래도 정리해보면 다음과 같다. 나눗셈의 경우 소숫점 첫째자리까지 연산이 가능하도록 하려면 format 함수를 이용해야 한다.

 

 

String.format("%.1f", result):

  • 이 메소드는 result 값을 소숫점 첫째 자리까지 표시된 문자열로 포맷한다.
  • "%.1f"는 포맷 지정자이다다:
    • %f: 부동소수점 숫자를 포맷합니다.
    • .1은 소숫점 이하 자릿수를 1자리로 제한합니다.
  • 예를 들어, result가 3.6이면, "3.6"이라는 문자열을 반환합니다.
  • return: 나눗셈 연산일 경우, 포맷팅된 문자열을 반환한다.

 

 

String.valueOf((int)result):

  • 이 코드는 result 값을 int로 형 변환한 후, 그 값을 문자열로 변환한다.
  • (int)result는 result를 정수로 변환합니다. 소숫점 이하 부분은 잘려나가고, 정수 부분만 남는다.
    • 예를 들어, result가 10.8이라면, 10으로 변환된다.
  • String.valueOf(10)은 10을 문자열 "10"으로 변환한다.

 

하지만 이 함수를 사용할 때 주의사항은 메소드를 String 타입으로 바꾸어야 한다. int도 하면 오류가 뜨고 사용할 수 없다. 다른 연산자로 바꾸면 결과값이 어떻게 달라질까 궁금해졌다.


 

 

 

다른 연산자로 바꾸었을 때

 

+나 -, *는 모두 그대로 정수로 출력이 잘 된다. 다만 % 연산은 연산자 조건에 없기에 result 값인 0으로 나온다.


 

 

 

 

 

2. 2개의 숫자 중 더 큰 수 반환하기

두 개의 수 줏 더 큰 수를 반환하는 메서드를 만들어본다.

 

 

 

 

큰 수가 출력 되었고 두 수가 같을 때는 1이 출력되고 있다.

 


 

 

 

 

학습을 마치고

여기까지 며칠 전에 공부했던 수업 예제를 혼자서 풀어보며 복습해보았다. 이제 혼자서도 이 문제를 풀 수 있을 것 같다. 다음 포스트에서는 무척 어려웠던 완전수 구하는 실습을 진행해볼 것이다.