Study/Java
Java. return문, 반환값
염몽이
2022. 3. 31. 02:07
return문
현재 실행 중인 메서드를 종료하고 호출한 메서드로 되돌아간다.
void문은 마지막에 return문을 생략해도 된다.
void printGugudan(int dan) {
if (!(1 < dan && dan <= 9)) {
return; //dan의 값이 2~9가 아닐경우, 호출한 곳으로 그냥 되돌아간다.
} else {
for (int i = 1; i < 10; i++) {
System.out.printf("%d * %d = %d%n", dan, i, dan * i);
}
return; //반환타입이 void이므로 생략가능. 컴파일러가 자동추가
}
}
반환타입이 void가 아닌 경우, 반드시 return문이 필요하다. (생략 불가능)
int multiply(int x , int y) {
return x*y;
}
아래 코드의 return문을 신경써서 반드시 조심해야 한다.
int max(int a, int b) {
if(a>b)
return a;
else
return b;
}
반환값
반환타입이 void가 아닐때,
return문옆에 써주는 값이 반환값인데
return문 옆에 반환값을 써줘야하고 반환값과 반환타입이 일치(자동형변환) 해야한다.
- 자동형변환값은 상관없다. char,byte,short
// 두 개의 정수를 받아서 그 차이를 절대값으로 반환
int diff(int a, int b) {
int result = abs(a - b);
return result;
// 위 두개의 문장을 아래와 같이 한줄로 나타낼 수 있다.
// abs의 반환타입이 메서드 diff의 반환타입과 일치하기 때문에 가능하다.
// return abs(a-b);
}
int abs(int i) {
if (i >= 0) {
return i;
} else {
return -i;
}
// if문 대신 삼항연산자를 써도 된다.
// return i>=0?i:-i;
}
꼭 일치해야한다는 점 기억하자