본문 바로가기

Java/실습

[Java] 홀 짝 게임 - 함수를 사용해서 만들기

이번 시간에는 저번에 만들었던 홀 짝 게임을

 

함수로 만들어 보도록 하겠습니다.

 

 

 

import java.util.Random;

import java.util.Scanner;

 

public class FMain4 {

//동전 10개 짤짤이

 

public static int randomOccur() {

Random r = new Random();

int rnum = r.nextInt(10)+1;

return rnum;

}

public static String judgeOdd(int a) {

String result = (a % 2 == 0) ? "짝" : "홀";

return result;

}

public static String answerInput() {

System.out.println("짝이나 홀을 입력하세요.");

String myAnswer = new Scanner(System.in).next();

return myAnswer;

}

public static String judgeAnswer(String myAnswer, String s) {

String answer = (myAnswer.equals(s)? "정답입니다!" : "틀렸습니다 ㅜ.ㅜ");

return answer;

}

public static void playGame() {

int r = randomOccur();

String result = judgeOdd(r);

String myAnswer = answerInput();

String answer = judgeAnswer(myAnswer, result);

System.out.printf("랜덤 수는 '%d'\n", r);

System.out.println(answer);

 

}

public static void main(String[] args) {

playGame();

}

}

 

 

제가 짠 코드입니다.

 

기능을 최대한 함수로 만들기 위해서 노력했는데요.

 

 

 

public static int randomOccur() {

Random r = new Random();

int rnum = r.nextInt(10)+1;

return rnum;}

 

먼저 랜덤한 숫자를 생성하는 함수입니다. 

 

10까지 랜덤한 숫자를 리턴합니다.

 

public static String judgeOdd(int a) {

String result = (a % 2 == 0) ? "짝" : "홀";

return result;}

 

 

다음은 홀 짝을 판단하는 함수입니다.

 

파라미터로 정수를 입력하면

 

그 숫자가 홀인지 짝인지 판단하여

 

결과를 반환합니다.

 

public static String answerInput() {

System.out.println("짝이나 홀을 입력하세요.");

String myAnswer = new Scanner(System.in).next();

return myAnswer;}

 

다음은 정답을 입력받아야겠죠.

 

짝이나 홀을 입력받고

 

입력받은 정답을 리턴합니다.

 

여기서 배운점이 기존에 사용하던

 

Scanner sc = new Scanner(System.in);

 

코드를 

 

String myAnswer = new Scanner(System.in).next();

 

이렇게 한 번에 객체로 생성하여

 

코드를 줄일 수 있다는 것을 알게되었습니다.

 

 

public static String judgeAnswer(String myAnswer, String s) {

String answer = (myAnswer.equals(s)? "정답입니다!" : "틀렸습니다 ㅜ.ㅜ");

return answer;}

 

다음은 입력받은 정답과

 

결과가 같은지 판단하는 함수입니다.

 

동일하면

 

정답입니다!

 

다르면

 

틀렸습니다 ㅜ.ㅜ

 

를 출력합니다.

 

이 때는 문자열이기 떄문에

 

equals()기능을 사용합니다.

 

 

public static void playGame() {

int r = randomOccur();

String result = judgeOdd(r);

String myAnswer = answerInput();

String answer = judgeAnswer(myAnswer, result);

System.out.printf("랜덤 수는 '%d'\n", r);

System.out.println(answer);}

 

마지막으로 기능들을

 

다 모아둔 playGame()이라는 함수를

 

만들었습니다.

 

main에서 playGame을 실행하면

 

모든 함수가 동작할 것입니다.

 

출력 결과

 

 

 

 

 

랜덤 수는 1인데

 

짝을 입력해서 틀린 모습입니다.

 

 

import java.util.Random;

import java.util.Scanner;

 

public class FMain4 {

//동전 10개 짤짤이

 

public static int randomOccur() {

 

return new Random().nextInt(10)+1;

}

public static String judgeOdd(int a) {

return (a % 2 == 0) ? "짝" : "홀";

}

public static String answerInput() {

System.out.println("짝이나 홀을 입력하세요.");

return new Scanner(System.in).next();

}

public static String judgeAnswer(String myAnswer, String s) {

 

return (myAnswer.equals(s)? "정답입니다!" : "틀렸습니다 ㅜ.ㅜ");

}

public static void playGame() {

int r = randomOccur();

String result = judgeOdd(r);

String myAnswer = answerInput();

String answer = judgeAnswer(myAnswer, result);

System.out.printf("랜덤 수는 '%d'\n", r);

System.out.println(answer);

 

}

public static void main(String[] args) {

playGame();

}

}

 

강사님의 도움으로

 

여기서 같은 변수인

 

코드들을 줄였습니다.

 

 

 

 

이번 시간에는

 

홀 짝게임을 함수를 이용해서 만들어봤는데요.

 

이렇게 함수를 최대한 세분화해서 만들면

 

어디서 오류가 났는지 쉽게 찾을 수 있고

 

코드를 간결화 함으로써

 

메모리를 효율적으로 사용할 수 있습니다.

 

읽어주셔서 감사합니다!

'Java > 실습' 카테고리의 다른 글

[Java] 피보나치 수열  (0) 2024.11.26
[Java] Factorial  (0) 2024.11.26
[Java] 함수 열고 닫기  (0) 2024.11.25
[Java] 비만도 계산 프로그램  (0) 2024.11.25
[Java] 두 숫자 중 큰 수를 출력하는 함수  (0) 2024.11.25