我遇到了我的代碼問題,程序不會再次播放,但 也不會結束。Java猜測遊戲無限循環
代碼在獲勝或猜測後繼續在inner while循環中循環。
這裏是我的代碼:
/**
* This program will prompt the user to guess a secret number
* This number will is between 1 and N, where N is a postive number
*
* @author: Perry Chapman
*/
import java.util.Scanner;
public class SecretNumber2
{
public static void main(String [] args)
{
int N;
int randomNumber;
int guess;
int tries, maxTries;
boolean win = false;
boolean playing = true;
int playAgain = 1;
tries = 0;
while(playing == true)
{
Scanner input = new Scanner(System.in);
System.out.println("This is a guessing game.");
System.out.println("What is the max number of tries: ");
maxTries = input.nextInt();
System.out.println("Enter a value between 1 and 1000: ");
N = input.nextInt();
randomNumber = (int)(N * Math.random()) + 1;
while (win == false)
{
System.out.println("Enter your guess: ");
guess = input.nextInt();
tries++;
if (guess == randomNumber)
{
System.out.println("Congratulations! The number of guesses it took you was " + tries);
win = true;
System.out.println("Would you like to play again? \n (1)Yes or (2)No: ");
playAgain = input.nextInt();
if(playAgain == 1) {
playing = true;
}
else if (playAgain == 2) {
playing = false;
}
tries = 0;
}
else if(guess < randomNumber)
System.out.println("Too low, guess again.");
else if(guess > randomNumber)
System.out.println("Too high, guess again.");
else if(tries == maxTries)
{
System.out.println("You have exceeded the max number of tries. \nYou lose.");
System.out.println("\nWould you like to play again?\n (1)Yes or (2)No: ");
playAgain = input.nextInt();
if(playAgain == 1) {
playing = true;
}
else if(playAgain == 2) {
playing = false;
}
tries = 0;
}
}
}
}
}
你爲什麼問「最大嘗試次數是多少?」 – Sedrick
澄清問題 –