자바의정석

[자바의 정석 - 기초편] ch6-20,21 return문, 반환값

유호야 2022. 3. 8. 18:23
반응형

ch6-20 return 문

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

return 자신을 호출한 곳으로 되돌아간다.

원래 메서드가 작업을 마쳤을 때 return; 을 작성해야 하지만, 매번 쓰기 귀찮기 때문에 
생략된 것이다 (반환타입이 void일 경우)

만약 void가 아니라면 생략할 수 없다.

 


반환 타입이 void가 아니라면 반드시 return 문이 필요하다.
너무 당연하게도 반환 값이 필요하기 때문에 return문이 필요한 것

조심할 부분은 메서드에 문제가 있다. 
조건문이 true일 때만 return 문이 없는 경우이기 때문에 false일 경우의 return 문도 작성을 해야 한다. 

 

실습

package ch06;

public class Ex6_4 {

	public static void main(String[] args) {
		MyMath m = new MyMath();
		m.printGugudan(4);
	}
}

class MyMath {
	
	void printGugudan(int n) {
		if(!(n>=2 && n<=9))
			return;
		
		for(int i = 1; i <= 9; i++) {
			System.out.printf("%d * %d = %d %n", n, i, n*i);
		}
	}
	int compare(int a, int b) {
		return (a > b) ? a : b;
	}
}

 

거짓일 때 반환값이 없는 경우

false인 경우에도 return 값을 넣어줘야 한다.

 


 

ch6-21 반환값

반환타입이 void가 아닌 경우 return 값을 생략할 수 없다. 
return 값과 타입이 일치하거나 자동형변환이 가능해야 한다. 

 

Q. break 와 return의 차이점은 무엇일까?

return은 함수의 자체에서 빠져나간다면 break는 함수 자체가 아니라 함수 안에서 쓰인 루프문에서만 빠져나간다는 차이점이 있다. 

반응형