본문 바로가기
study/Java

자바Java 메서드 (2) – return

by 고기만두(개발자) 2021. 8. 19. 19:04
728x90
반응형

이번 시간에는 메서드가 값을 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하는 방식에 대해 알아보았습니다.

다음 편에서는 메서드를 호출하는 방법에 대해 알아보겠습니다.

728x90
반응형

댓글