이번 시간에는 저번에 만들었던 홀 짝 게임을
함수로 만들어 보도록 하겠습니다.
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 |