리턴(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 |