본문 바로가기

Java/실습

[Java] 덧셈의 결과가 짝수면 출력 - 재귀 함수

x와 y를 입력받고

 

둘의 합을 출력하되,

 

짝수면은 그대로 출력하고 

 

홀수면은 x랑 y를 다시 입력받는

 

프로그램을 짜보도록 하겠습니다.

 

 

import java.util.Scanner;

 

public class FMain3 {

public static int getX() {

Scanner sc = new Scanner(System.in);

System.out.println("x : ");

int x = sc.nextInt();

return x;

}

public static int getY() {

Scanner sc = new Scanner(System.in);

System.out.println("y : ");

int y = sc.nextInt();

return y;

}

 

 

먼저 x와 y를 입력받는 함수입니다.

 

이 부분은 많이 다뤄서 넘어가도록 하겠습니다.

 

 

 

public static int getResult(int x, int y) {

int sum = x + y;

return (sum %2 == 0 ? sum : getResult(getX(),getY()));

}

public static void main(String[] args) {

int x = getX();

int y = getY();

System.out.println(x);

System.out.println(y);

int sum = getResult(x, y);

System.out.println(sum);

}

}

 

둘의 덧셈을 출력하는 코드입니다.

 

이때 2로 나눴을 때 나머지가 0이면은

 

sum을 그대로 출력하고 아니면

 

getResult함수를 재호출하여

 

x와 y를 다시 입력받습니다.

 

이떄 주의할 점은

 

return (sum %2 == 0 ? sum : getResult(getX(),getY()));}

 

getResult 함수의 파라미터로

 

x,y 가 아닌 getX(), getY()함수를 호출해야 한다는 점입니다.

 

getResult를 재호출하게 되면

 

x, y가 선언되어 있지 않기 떄문에

 

무한루프를 돌게됩니다.

 

x, y를 입력받는 함수인 getX(), getY()를

 

파라미터로 전달하여

 

실행해야 합니다.