이번 시간에는 메서드가 값을 return하는 방법에 대해 알아볼까 합니다.
예제 코드를 함께 보면서 진행하겠습니다.
class ReturnTest {
public static void main(String[] args) {
ReturnTest r = new ReturnTest();
int result = r.add1(3,5);
System.out.println(result);
int[] result2 = {0}; //배열을 생성하고 result2 배열 0번지 값 초기화
r.add2(3,5,result2);
System.out.println(result2[0]);
int result3 = r.max(3,5);
System.out.println(result3);
}
int add1 (int a, int b){
return a+b;
}
void add2 (int a, int b, int[] result2){
result2[0] = a+b;
}
int max(int a, int b){
int result = 0;
if (a > b){
result = a;
}else{
result = b;
}
return result;
}
}
먼저 add1 메서드에서는 정수 a와 b를 입력받고 이를 더한 값을 return했습니다.
그래서 결과값이 8이 나왔습니다.
add2 메서드는 return이 없는 메서드입니다.
메서드의 마지막 줄까지 수행하여, 정수 a와 b 자리에 3과 5를 받아 a+b 연산을 수행한 값을 result2[] 배열 변수의 0번지에 저장합니다.
그리고 add2에서 int[] result2를 정의해 주었으므로, 값을 저장한 result2[]가 8임을 출력할 수 있습니다.
max 메서드는 정수 a와 b의 값을 비교하여, 조건에 맞는 result 값을 출력합니다.
3<5 이므로 result에 b의 값 5 를 받아 이를 return합니다.
메서드를 종료하는 방식에는 크게 2가지가 있습니다.
아래와 같이 나뉘는데요.
이 중 return문은 현재 실행 중인 메서드를 종료하고, 호출한 메서드로 돌아가도록 하는 역할을 하게 됩니다.
그 중 반환값이 있는 경우 반환값이 메서드 선언부에 정의된 반환 타입과 일치하거나, 반환 타입으로 자동 형변환이 가능한 형태로 작성되어야 합니다.
그리고 return은 여러 번 작성하는 것보다 한 번만 작성하는 것이 더 깔끔합니다.
int max(int a, int b){
if (a > b){
return a;
}else{
return b;
}
}
위와 같은 형태로 return을 여러 번 작성할 수도 있지만, 분기가 많아지고 복잡도가 높아지는 경우 코드의 가독성을 높여 주기 어렵습니다.
이번 레터를 통해 메서드가 값을 return하는 방식에 대해 알아보았습니다.
다음 편에서는 메서드를 호출하는 방법에 대해 알아보겠습니다.
'study > Java' 카테고리의 다른 글
JVM의 메모리 구조 (0) | 2021.08.21 |
---|---|
자바 Java 메서드 (3) – 메서드의 호출 (0) | 2021.08.20 |
자바Java 메서드 (1) – 정의와 구조 (0) | 2021.08.18 |
자바 Java 선언 위치에 따른 변수의 종류 (0) | 2021.08.17 |
자바Java 인스턴스의 생성과 사용 (0) | 2021.08.16 |
댓글