본문 바로가기

Java/이론

[Java] 함수의 return

import java.util.Scanner;

 

public class FMain4 {

 

public static void takeMoney() {

Scanner sc = new Scanner(System.in);

System.out.println("엄마가 준 돈:");

int money = sc.nextInt();

System.out.printf("엄마가 %d원을 주셨다!\n", money);

System.out.println("----------------");}

 

public static void makeErrand() {

System.out.println("아들 !");

System.out.println("돈 줄테니까");

System.out.println("슈퍼가서");

System.out.println("라면이랑");

System.out.println("참치 사고");

System.out.println("남은 돈 가져와 ~");

System.out.println("------------------");}

 

public static void main(String[] args) {

makeErrand();

takeMoney();}}

 

 

다음과 같은 코드가 있을 떄 어떻게 출력될까요?

 

출력 내용

 

 

엄마가 주신 돈을 함수를 사용해 콘솔로 출력할 수 있습니다.

 

하지만 함수는 print의 동작만 할 뿐

 

main함수에서 엄마가 주신 돈인 money에 접근할 수 없습니다.

 

money에 접근하려면 어떻게 해야할까요?

 

이럴때 바로 return 기능을 사용해야 합니다.

 

return 문을 코드 밑에 줄에 추가하여

 

변수를 다른 함수로 내보낼 수 있는데

 

이때 형식은 return 변수; 입니다.

 

값을 반환하기 떄문에 

 

값이 없이 기능만 하던 void 자료형을

 

int로 바꿔줘야 합니다.

 

여기서 void의 뜻은 return할 값이 없다는

 

의미를 가지고 있습니다.

 

public static int takeMoney() {

Scanner sc = new Scanner(System.in);

System.out.println("엄마가 준 돈:");

int money = sc.nextInt();

System.out.printf("엄마가 %d원을 주셨다!\n", money);

System.out.println("----------------");

return money;

}

 

이렇게 하면 main 함수에서

 

반환되는 값을 변수에 넣어서

 

값에 접근할 수 있습니다.

 

public static void main(String[] args) {

makeErrand();

int money = takeMoney();}

 

함수를 하나 더 만들겠습니다.

 

public static void doErrand(int money) {

int ramen = 3200;

int tuna = 2170;

int snack = 1500;

 

System.out.printf("심부름하면 %d원이 남네...ㅎ\n",money - ramen - tuna - snack);

System.out.println("------------------");}

 

위 함수에서는 어머니가 주신 돈의 값이 필요합니다.

 

따라서 메인 함수에서 파라미터로 받아옵니다.

 

doErrand(money);

 

이렇게 하면 takeMoney 함수에서 가져온 

 

money 값을 이용해서 함수를 실행하게 됩니다.

 

출력 내용

 

 

 

이렇게 해서 return으로 반환한 money 값을 메인함수에서

 

다른 함수로 파라미터로 넘겨서 사용할 수 있다는 것을

 

알게되었습니다.

 

 

함수를 왜 사용해야 할까요?

 

1. 보기 편하다. (가독성)

 

2. 오류 발견하기 편하다.

 

3. 메인 함수에 다 넣기 보다는 기능을 나눌 수 있음.

 

4. 다른 클래스에서 사용하기 위해서 사용한다.

 

※ main함수에서 코드를 최대한 짧게 구성하기 위해서

 

 

기능들을 묶어서 함수라는걸로 사용합니다.

 

즉, 기능을 나눠서 효율적으로 사용하기 위함입니다.

 

 

 

따라서 함수는 그 어떤 기능보다 많이 사용되기 떄문에

 

구현하는 방법을 완벽히 숙지해야겠다는 생각이 들었습니다.

 

읽어주셔서 감사합니다!

'Java > 이론' 카테고리의 다른 글

[Java] 함수의 종류  (0) 2024.11.25
[Java] 오버로딩 (Overloading)  (0) 2024.11.22
[Java] 함수 (Function)  (0) 2024.11.22
[Java] Random 기능  (0) 2024.11.22
[Java] 삼항 연산자  (6) 2024.11.22