首页 > 解决方案 > 如何让用户多次尝试?

问题描述

import java.util.Scanner;
import java.util.Random;

/*
 *  1) the user can attempt many times and you need to display the number of successful attempt
 *  2) the range of random number 1..49
 *  3) output >> You successfully guess the number in 16 attempts
 *  4) output >> Do you want to play again?
 * */

public class GuessingGame {

    public static void main(String[] args) {
        Scanner uInput = new Scanner(System.in);
        Random randNum = new Random();
        int guessNumber, number, count=0;
        String in;
        char again; 
        
        System.out.println("Welcome to Guessing Game");
        do {
                number = randNum.nextInt(50); // random number in the range of 1..50
        
                for(int i=0; i<5; i++)
                {
                    System.out.println("Enter a number to guess: ");
                    guessNumber = uInput.nextInt(); // get guess number from user
                    
                    if(guessNumber > number)
                    {
                        System.out.println("Too big");
                    }else if(guessNumber < number)
                    {
                        System.out.println("Too small");
                    }else
                    {
                        System.out.println("Success");
                        count+=1;
                        return;
                    }
                }
                System.out.println("You successfully guess the number in "+count);
                System.out.println("Do you want to play again? ");
                in = uInput.nextLine();
                
                again = in.charAt(0); //again will hold the first character from in var
                
        }while(again =='Y'|| again =='y');
        System.out.println("Guessing game terminate, thank you");
    }
}

标签: javafor-looprandomcharnumbers

解决方案


public static void main(String[] args) {
    System.out.println("Welcome to Guessing Game");
    guessNumber();
    System.out.println("Guessing game terminate, thank you");
}

private static void guessNumber() {
    Scanner uInput = new Scanner(System.in);
    Random randNum = new Random();
    int guessNumber, number, count = 0;
    String in;
    char again;
    boolean isCorrect = false;


    number = randNum.nextInt(50); // random number in the range of 1..50

    while (!isCorrect) {
        System.out.println("Enter a number to guess: ");
        guessNumber = uInput.nextInt(); // get guess number from user

        count += 1;

        if (guessNumber > number) {
            System.out.println("Too big");
        } else if (guessNumber < number) {
            System.out.println("Too small");
        } else {
            System.out.println("Success");
            isCorrect = true;
        }
    }

    System.out.println("You successfully guess the number in " + count + " attempts");
    System.out.println("Do you want to play again? yes/no");
    in = uInput.next();

    again = in.charAt(0); //again will hold the first character from in var
    if (again == 'Y' || again == 'y') {
        guessNumber();
    }
}

推荐阅读