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

메서드 5 - 메서드 실습 문제 풀기 : 두 수의 나눗셈 , 큰 수 비교하기 본문

프로그래밍 언어/자바

메서드 5 - 메서드 실습 문제 풀기 : 두 수의 나눗셈 , 큰 수 비교하기

huenuri 2024. 8. 13. 17:52

3교시부터는 응용문제를 많이 풀어보았다. 선생님께서 문제를 풀 시간을 주시는데 오늘은 나도 상당히 많은 문제들을 혼자서 풀기도 했다. 함수가 뭔지 조금 알 것 같았다.
4교시 때 풀었던 약수 구하기부터는 정말 어려웠지만 사칙연산을 만들 수 있다는 것으로 정말 뿌듯했던 시간이었다.

그럼 풀었던 문제를 한번 살펴보자! 조금 전에 캡쳐하려고 보니 조금 틀린 코드가 있어서 고치기도 했다. 이젠 이런 부분도 잘 보이는 것이 참 신기했다. 자바에 조금씩 익숙해지고 있는 걸 느꼈다.


 

 

 

메서드 실습 문제 풀어보기

 

 

1.  두 수의 나눗셈 구하기

 

지난번에 학습일지를 쓸 때 이 부분은 내용을 쓰지 않아서 추가해본다. 3과 5를 나누는 문제인데 0으로만 출력이 되어 하나의 함수를 하나 더 써보았다.

 

이렇게 잘 출력이 되고 있다.


 

 

 

 

 

2. 덧셈, 뺄셈, 나눗셈, 곱셈이 가능한 메서드 만들기

 

덧셈, 뺄셈, 곱셈, 나눗셈을 출력하려면 어떤 메서드가 필요한지 생각해야 한다. 출력만 하면 되니 반환값은 필요 없고 매개변수는 있어야 한다.
이 문제는 혼자서 풀었는데 다 풀고 나서 정말 뿌듯했다.

 

 

이렇게 값이 잘 출력되었다.

 

 

 

이 문제는 약간 이해가 되지 않는다. 왜 % 연산을 했는데 5 % 2가 1이 되어야 하는데 0이 되는지 잘 모르겠다. 그 이유는 다음과 같다.

% 연산을 처리하는 로직이 cal 메서드에 포함되지 않았기 때문이다. 현재 cal 메서드는 -, +, *, / 연산만 처리하도록 작성되어 있다. % 연산에 대한 처리가 없으므로, 코드가 실행될 때 기본값 0이 반환된다. 만약 % 연산을 하도록 처리하고 싶으면 코드를 다음과 같이 수정하면 될 것이다.

 

 

 

이제 1이 잘 출력이 되었다. 앞에서 난 + 연산자로 바꾸어보았는데 그때는 7이 잘 나왔다. 그건 조건문에 + 연산자가 있었기 때문이다. 이렇게 배운 내용을 하나하나 점검해보며 이해가 되지 않는 부분을 써보고 정리해보는 건 정말 중요한 것 같다. 이제 확실히 이해가 되었다.


 

 

 

 

 

3. 2개의 숫자 중 더 큰 수를 반환하는 메서드

 

2개의 숫자 중 더 큰 수를 반환해야 하므로 반환값이 있고 매개변수는 int여야 한다. 이 문제도 if문을 사용해서 같은지 다른지를 비교하는 문제였다. 앞의 문제와 비슷하지만 다른 점이 있다면 등호를 사용해서 푸는 문제라는 것이다.
처음에는 이 조건을 생각하는 것이 조금 어려웠다.

 

 

 

두 수를 10으로 해주면 큰 수가 0으로 나온다. 하지만 값을 바꾸어주면 괜찮아진다. 그 이유가 무엇일까?

 

 

이 코드는 두 수가 같으면 0을 반환하기로 되어 있기 때문이었다.


 

 

 

3교시 학습 정리를 마치며

생각보다 어려운 문제들이 많았는데 잘 이해할 수 있어서 참 기뻤다. 근데 오늘 학습일지를 쓰면서 정리해보니 아직은 부족한 부분이 많이 보였다. 아마도 조건문과 반복문 학습을 아직 하지 않아서 그럴 것 같다.

앞의 수업도 처음부터 듣고 정리하다보면 분명 지금보다 이해력이 높아질 것 같다. 내일의 수업을 위해 오늘 배운 것을 꼭 기억해볼 것이다.
전에는 매개변수와 리턴값에 대해 생각해본 적이 없었는데, 문제를 풀 때 가장 먼저 무엇을 생각해야 하는지 알게 되었다. 선생님을 정말 잘 만난 것 같아 감사하다. 이처럼 자세하고 알기 쉽게 설명해주시는 분은 처음이었다.

 

지난번에 쓴 학습일지를 고치기도 하고 필요 없는 부분은 삭제하기도 했다. 이해력이 높아져서 그때는 이해하지 못했던 예제들도 모두 이해했다.