为什么我的HiLo游戏允许在0-10范围之外猜测?

时间:2014-10-20 23:44:16

标签: java

我有一个关于这个HiLo游戏的快速问题,我一直试图解决这个问题。当我运行程序时,它计算0-10范围之外的猜测,但我不希望它这样做。我该如何解决这个问题?这是我的代码。

import java.util.Random; // Random number generator class
import java.util.Scanner; // reads user inputs

public class HiLo 
{
    public static void main(String[] args) 
    {
        // declare variables
        final int MAX = 10;
        int answer, guess;
        int numberOfTries = 0;
        String again;

        Scanner Keyboard = new Scanner(System.in);

        do 
        {
            System.out.print(" I'm thinking of a number between 0 and "
            + MAX + ". Guess what it is: ");
            guess = Keyboard.nextInt();
            // guess
            Random generator = new Random(); // Random number generator. 0 to 10.
            answer = generator.nextInt(MAX) + 1;

            if (guess > 10) // if guess is bigger than 10 then error message
            {
                System.out.println("ERROR – Your guess is out of the range 0 to 10.");
            }
            if (guess < 0) // if guess is smaller than 0 then error message
            {
                System.out.println("ERROR – Your guess is out of the range 0 to 10.");
            }

            while (guess != answer) // If guess is not the answer
            {

                if (guess > answer) // If guess is more than the answer
                {
                    System.out.println("You guessed too high! \nTry again:");
                    guess = Keyboard.nextInt();
                }

                if (guess < answer)// If guess is less than the answer
                {
                    System.out.println("Too Low! \nTry again:");
                    guess = Keyboard.nextInt();
                }

                numberOfTries = numberOfTries + 1;

            }// end of the loop

            // display result
            if (guess == answer)
            {
                numberOfTries += 1;
                System.out.println("YOU WIN!");
                System.out.println("It took you " + numberOfTries + " tries!");
                System.out.println();
                System.out.print("Do you want to play again(Y/N)?");
            }

            Keyboard.nextLine(); // skip over enter key
            again = Keyboard.nextLine();

            numberOfTries = 0;

        } while (again.equalsIgnoreCase("Y"));

    } // end of class

} // end of main

1 个答案:

答案 0 :(得分:0)

您报告错误但不要continue;(并使用逻辑||

if (guess < 0 || guess > 10) {
  System.out.println ("ERROR – Your guess is out of the range 0 to 10.");
  again = "Y"; // <-- make sure we'll re-evaluate.
  continue; // <-- Add then skip the rest of the loop body
}