私のコードに問題がありますが、プログラムは再び再生されませんが、 も終了しません。Javaの推測ゲーム無限ループ
コードは、勝利またはあまりにも多くの推測の後、内部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
質問を明確にする –