否则 - 如果/ While循环卡住

时间:2013-11-13 15:01:57

标签: loops if-statement while-loop

我正在尝试创建一个输入最小和最大数字的程序,然后在该范围内生成一个随机数。然后用户猜出一个数字,如果它太高,它输出一个消息。如果它太低,它会输出一个消息。我坚持的部分是当你正确猜出数字时,用户输入“Y”或“N”再次运行程序。

我的代码如下:

import java.util.Scanner;
import java.util.Random;
public class GuessingGame_V2
{
public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    System.out.print('\u000C');
        int min;
        int max;
        int userGuess;
        int numberGuesses = 1;   
        System.out.println("Enter the minimum number: ");
        min = in.nextInt();
        System.out.println("Enter the maximum number: ");
        max = in.nextInt();
        Random r = new Random();
        int randomNumber = r.nextInt(max - min + 1) + min;
        System.out.println("Enter your guess: ");
        userGuess = in.nextInt();
    String guessAgain = ("Y");
while(!guessAgain.equalsIgnoreCase("N"))
{         
    if( userGuess > randomNumber ){
        System.out.println("Your guess was to high! Guess again!");
        System.out.println("Input your new guess: ");
        userGuess = in.nextInt();
        numberGuesses++;
       }
    else if (userGuess < randomNumber ){
        System.out.println("Your guess was to low! Guess again!");
        System.out.println("Input your new guess: ");
        userGuess = in.nextInt();
        numberGuesses++;
       }
    else 
       {  
        System.out.println("Congratulations, you guessed the number!");
        System.out.println("It took " + numberGuesses + " tries");
        System.out.println("Guess another number? (Y/N)");
        guessAgain = in.next();
       }
    }
   System.out.println("Thank's for playing!");
   }
}

当用户点击“Y”重新启动程序时,问题就出现了。它不会重新启动,只会再次显示最终消息。 (打印声明,猜测数和Y / N)。当用户输入“Y”

时,我需要重新启动程序

我很想在网站上发帖..如果我搞砸了代码,请原谅我 - 在此先感谢您的帮助 -

*更改 - 11/13/13 10:58更改了代码以获取多个输入和 继续输入,直到用户正确。

1 个答案:

答案 0 :(得分:0)

你需要嵌套循环,因为你正在做两个重复的动作 - 首先是重复游戏,第二个是在一个游戏中提示猜测。

所以使用嵌套循环。一个循环提示用户他或她是否想要播放并在最后用相同的问题再次提示用户。嵌套循环应该就像你拥有它一样。

您的代码应该与

一致
while (stillPlaying) {
  while (stillGuessing) {
  }
}

希望有所帮助。