본문 바로가기
개발/Java

[Java] Method(2) - return문

by 두리두리안 2021. 5. 19.

리턴(return)문

리턴값이 있는 메소드

메소드 선언에 리턴 타입이 있는 메소드는 반드시 return문을 사용해서 리턴값을 지정해야 한다. 만약 return문이 없다면 컴파일 오류가 발생

 

return 리턴값; 

 

return문의 리턴값은 리턴 타입이거나 리턴 타입으로 변환될 수 있어야 한다. 

예를 들어 리턴 타입이 int인 plus()메소드에서 byte, short, int타입의 값이 리턴되어도 상관 없다. 

 

return문을 사용할 때 주의할 점은 return문 이후에 실행문이 오면 "Unreachable code"라는 컴파일 오류가 발생, 왜냐하면 return문 이후의 실행문은 결코 실행되지 않기 때문이다. 

 

int plus(int x, int y){
	int result = x + y;
    return result;
    System.out.println(result); // Unreachable code

 

리턴(return)값이 없는 메소드(void)

void로 선언된 리턴값이 없는 메소드에서도 return문을 사용할 수 있다.

다음과 같이 return문을 사용하면 메소드 실행을 강제 종료 된다. 

 

return;

 

Car.java

package Method03;

public class Car {
	//필드
	int gas;
	
	//생성자
	
	//메소드 
	void setGas(int gas) {
		this.gas = gas;
	}
	// 리턴값이 없는 메소드로 매개값을 받아서 gas 필드값을 변경 
	
	boolean isLeftGas() {
		if(gas == 0) {
			System.out.println("gas가 없습니다.");
			return false; // false를 리턴
		}
		System.out.println("gas가 있습니다.");
		return true; // true를 리턴
	}
	//리턴값이 boolean인 메소드로 gas 필드값이 0이면 false를, 0이 아니면 true를 리턴
	
	void run() {
		while(true) {
			if(gas>0) {
				System.out.println("달립니다.(gas잔량: "+gas+")");
				gas -= 1;
			}else {
				System.out.println("멈춥니다.(gas잔량: "+gas+")");
				return; //메소드 실행 종료
			}
		}
	}
	// 리턴값이 없는 메소드로 gas 필드값이 0이면 return문으로 메소드를 강제 종료
	
}

 

CarExample.java

package Method03;

public class CarExample {

	public static void main(String[] args) {
		Car myCar = new Car();
		
		myCar.setGas(5); //Car의 setGas() 메소드 호출
		
		boolean gasState = myCar.isLeftGas(); // Car의 isLeftGas() 메소드 호출
		if(gasState) {
			System.out.println("출발 합니다.");
			myCar.run();
			//Car의 run() 메소드 호출
		}
		
		if(myCar.isLeftGas()) { //Car의 isLeftGas() 메소드 호출
			System.out.println("gas를 주입 할수 없습니다.");
			
		}else{
			System.out.println("gas를 주입 하십시오");
		}

	}

}

 

 

'개발 > Java' 카테고리의 다른 글

[Java] List 컬렉션  (0) 2021.05.22
[Java] HashMap  (0) 2021.05.22
[Java] Method(4) - 외부 호출  (0) 2021.05.19
[Java] Method(3) - 메소드 호출  (0) 2021.05.19
[Java] Method(1)  (0) 2021.05.19