지금까지 공부한 내용들로 이번에는 문제를 보고 직접 메소드를 만들어봅시다.
어렵게 생각하실거 없습니다.
지금까지 공부한 내용으로 충분히 만드실 수 있습니다.
지난 포스트
실습 문제
2개의 양수를 받아 2개의 숫자 중 더 큰 수를 반환하는 메소드 largerNumbers()를 만들어보세요.
(단, 만약 두 숫자가 같다면 0을 반환하게 만들어보세요.)
(예)
largerNumbers(2, 7) → 7을 반환
largerNumbers(9, 5) → 9를 반환
largerNumbers(8, 15) → 15를 반환
largerNumbers(6, 6) → 0을 반환
아래로 스크롤을 조금만 더 내리면 답이 나오겠지만, 바로 답을 보기 전에 스스로 만들어보시는 것을 추천드립니다.
메소드의 원리를 이해하기 위한 실습 정도로 생각하시면 됩니다.
실제 이 largerNumbers() 메소드 안에 들어가는 코드들은 그렇게 복잡하지 않습니다.
혹시 가물가물하실 분들에게 팁을 몇가지 드리자면 largerNumbers() 메소드 안에서는 if-else문이 사용될 겁니다.
단순 if문, if-else문, 다중 if-else문이 살짝 가물가물하신 분들은 위의 포스트들을 확인해주세요.
정답
package 메소드기초;
public class Ex03 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 24;
int result = largerNumbers(num1,num2);
System.out.println("큰 수 확인 : " + result);
}
public static int largerNumbers(int num1, int num2) {
int result = 0;
// 1. num1과 num2 중 누가 더 큰지 비교
// 2. 더 큰 수를 result에 담아주기
// 3. 단, 두 수가 같다면 result 0이라는 숫자를 담아주기
if(num1>num2) {
result = num1;
} else if(num2>num1) {
result = num2;
} else {
result = 0;
}
return result;
}
}
return으로 반환할 결과 값이 담길 변수인 result 변수를 선언해줍니다.
다중 if-else문을 이용해서 더 큰 수를 result에 담게 만들고, 두 수가 같다면 0이 담기게 만들어줍니다.
그런데 아래와 같은 방법으로 메소드를 만들 수도 있습니다.
package 메소드기초;
public class Ex03 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 24;
int result = largerNumbers(num1,num2);
System.out.println("큰 수 확인 : " + result);
}
public static int largerNumbers(int num1, int num2) {
// 1. num1과 num2 중 누가 더 큰지 비교
// 2. 더 큰 수를 result에 담아주기
// 3. 단, 두 수가 같다면 result 0이라는 숫자를 담아주기
if(num1>num2) {
return num1;
} else if(num2>num1) {
return num2;
} else {
return 0;
}
}
}
result라는 변수를 만들지 않고, if-else문 안에서 바로 return을 해주는 방법입니다.
지난번에 작성한 '메소드의 기본 구조' 포스트에서는,
'return 키워드가 나오는 동시에 메소드의 로직은 끝나게 되는 것이므로, 반환 데이터는 가장 아랫줄에 써야 한다'고 했습니다. 그리고 메소드 안에서 return은 한번밖에 안 들어가는데, 위의 코드에서는 return이 여러 번 들어가 있는데다 마지막 줄에 쓰여있지도 않습니다.
그런데도 이것이 가능한 이유는 위의 if-else문은 조건문이기 때문에 어차피 세가지 조건들 중에서 한 조건만을 거치게 되기 때문에 return을 한 번만 쓴 것이나 다름이 없게 되는 것입니다.
다음 포스트
이 글이 도움이 됐다면 하단의 ♡ 공감 버튼을 꾹 눌러서
빨간 하트♥로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS에 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.
'그 외 프로그래밍 언어 > Java' 카테고리의 다른 글
자바, 메소드(method)의 기본 구조 빠르게 만드는 법 (0) | 2021.12.11 |
---|---|
자바, 메소드(method) 실습 2 (0) | 2021.12.11 |
자바, 리턴 타입이 없는 메소드 (feat. void) (0) | 2021.12.11 |
자바, 간단한 메소드를 만들어 봅시다. (0) | 2021.12.05 |
자바, 메소드(method)의 기본 구조 (0) | 2021.12.05 |
댓글