Java

Java) 랜덤 숫자 뽑기 프로그램(Random Value Finding)

pogun 2024. 12. 31. 09:07

랜덤함수 사용 예제

int r = (int)(Math.random() * 10);
System.out.println(r);

: 1 ~ 9를 뽑는 예제

int s = ((int)(Math.random() * 5) + 1) * 10;
System.out.println(s);

: 10, 20, 30, 40, 50을 뽑는 예제

: 이런식으로 마지막에 계산식을 활용해서 표현 가능


랜덤 숫자 뽑기 프로그램

조건 : 

    1. 입력 횟수를 유저가 선택하도록 구현

    2. 새로운 게임이 다시 시작하도록 구현

while(true) {

    int ranDom = (int) (Math.random() * 100) + 1;
    int number = 0;
    int userCnt = 0;

    Scanner sc = new Scanner(System.in);

    System.out.print("당신의 도전 횟수는 : ");
    userCnt = sc.nextInt();

    for (int i = 1; i <= userCnt; i++) {
        System.out.print("정답 : ");
        number = sc.nextInt();

        if (ranDom == number) {
            System.out.println("정답입니다!");
            break;

        } else if (ranDom < number) {
            System.out.println("너무 큽니다.");

        } else if (ranDom > number) {
            System.out.println("너무 작습니다.");
        }

        if (i == userCnt) {
            System.out.println("기회를 다 사용하였습니다.");
        }
    }
    System.out.print("다시 시작하겠습니까?(Y/N) = ");
    String replay = sc.next();

    if(replay.equals("n") || replay.equals("N")){
        System.out.print("안녕히가십시오!");
        break;
    } else{
        System.out.println("게임을 다시 시작합니다!");
    }
}

: 재시작하는 부분에서 break를 꼭 걸어줘야한다.

: "n", "N"만 입력했는 데 "y", "Y"가 되는 이유는 else기 때문이다.

: "y" ,"n" 중 하나를 선택하라고 했기때문에 간단하게 구현 가능

: 근데 항상 예외 처리는 해야한다.

: 범위를 벗어나면 재입력 및 에러 구문을 출력하도록 설계해야한다.