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;
	}

 

일치해야한다는 점 기억하자