[Java] return문

Yeoonnii·2023년 1월 30일
0

Java

목록 보기
24/30
post-thumbnail
post-custom-banner

return문

실행중인 메서드를 종료하고 호출한 곳으로 되돌아간다.


return문 생략 가능한 경우

메서드의 반환타입이 void인 경우 return문을 생략할 수 있다
➡ 컴파일러가 자동으로 추가해준다

예시 1

class Ex6_4 {
	public static void main(String args[]) {
		MyMath mm = new MyMath();
		mm.gugudan(2);
	}
 }

class MyMath {
	void gugudan(int dan) {
		if(!(2<=dan && dan<=9)) // dan이 2와 9사이에 있지 않은 경우
			return;
            
		System.out.println("결과 ==> ");
		for(int i=1; i<=9; i++) {
			System.out.printf("%d * %d = %d%n", dan, i , dan * i);
		}
		// return; // 반환타입이 void 이기 때문에 생략 가능
	}
 }

출력결과


예시 2

if문에서 조건을 만족하지 못하기 때문에 return문을 만나 메인 메서드로 되돌아간다

class Ex6_4 {
	public static void main(String args[]) {
		MyMath mm = new MyMath();
		mm.gugudan(11);
	}
 }

class MyMath {
	void gugudan(int dan) {
		if(!(2<=dan && dan<=9)) // dan이 2와 9사이에 있지 않은 경우
			return;
            
		System.out.println("결과 ==> ");
		for(int i=1; i<=9; i++) {
			System.out.printf("%d * %d = %d%n", dan, i , dan * i);
		}
		// return; // 반환타입이 void 이기 때문에 생략 가능
	}
 }

출력결과



return문 생략 불가능한 경우

반환타입이 void가 아닌 경우, 반드시 return문이 필요하다

이때 메서드의 반환타입리턴값의 반환타입일치해야하며,
자동형변환(예. char, byte, short ➡ int )이 되는 경우는 반환타입이 일치하지 않아도 된다.

	long add(long a, long b) {
		return a + b;	
	}


조건식의 return문 사용

아래와 같이 if문을 사용하여 메서드를 작성한 경우

long max(long a, long b) {
		if(a>b) {
			return a;
		}
	}

메서드가 long type으로 return 해야한다는 에러가 발생한다.

조건문(if-else문) 사용시 조건식이 참인경우, 거짓인 경우
각 결과에 따라 실행될 return문을 지정해주어야 한다.

	long max(long a, long b) {
		if(a>b) {
			return a;
		} else {
			return b;
		}
	}

post-custom-banner

0개의 댓글