如何为java添加“再次播放?”function

我为我的class级制作一个猜谜游戏,当你猜到正确的数字时,我需要一些帮助来在游戏结束时添加“再玩”function:

public class GuessingGame { public static void main(String[] args) { Scanner input = new Scanner(System.in); Random rand = new Random(); int numtoguesses = rand.nextInt(1000) + 1; int counter = 0; int guess = -1; while (guess != numtoguesses) { System.out.print ("|" + numtoguesses + "|" + "Guess the right number: "); guess = input.nextInt(); counter = counter + 1; if (guess == numtoguesses) System.out.println ("YOU WIN MOFO!"); else if (guess  numtoguesses) System.out.println ("You're to hot!"); } System.out.println ("It took you " + counter + " guess(es) to get it correct"); } } 

一种简单的方法是将您编写的代码移动到函数中

  public void play() { ... } 

main做的事情:

  do { play(); playAgain = promptUser; } while(playAgain); 

只需将另一个循环放在所有内容上。

 boolean playing = true; while(playing) { while(guess != numtoguesses) { // All code } System.out.println("Do you wish to play again? Y/N"); String answer = input.nextLine(); playing = answer.equalsIgnoreCase("y"); count = 0; guess = -1; } 

一切都在一起:

 public static void main(String[] args) { Scanner input = new Scanner(System.in); Random rand = new Random(); int numtoguesses = rand.nextInt(1000) + 1; int counter = 0; int guess = -1; boolean playing = true; while(playing) { while (guess != numtoguesses) { System.out.print ("|" + numtoguesses + "|" + "Guess the right number: "); guess = input.nextInt(); counter = counter + 1; if (guess == numtoguesses) System.out.println ("YOU WIN MOFO!"); else if (guess < numtoguesses) System.out.println ("You're to cold!"); else if (guess > numtoguesses) System.out.println ("You're to hot!"); } } System.out.println ("It took you " + counter + " guess(es) to get it correct"); System.out.println("Do you wish to play again? Y/N"); String answer = input.nextLine(); playing = answer.equalsIgnoreCase("y"); count = 0; guess = -1; numtoguesses = rand.nextInt(1000) + 1; } 

你应该用几种方法来提取它,但我会把它留给你。

我可以考虑很多选择。 最快的:

– 将所有代码放在行之间int numtoguesses = rand.nextInt(1000) + 1; (包括)和无限循环内的main方法结束
– 在当前代码块的末尾,向用户添加一个interogation,询问他/她是否想再次播放(您可以为按下的键定义约定); 这部分也放在无限循环内
– 如果他/她不想,打破(外部)无限循环