このJavaプログラムは、ユーザーに最大値を入力し、その最大値から1の間の乱数を生成するように求められています。ユーザーは、正しい値を得るまで値が何であるかを推測します。ユーザーが間違っていると、プログラムは、ユーザーが高すぎるか低すぎると判断し、推測数を増やします。ユーザーが正しい場合、プログラムは推測の総数を表示し、ユーザーに再試行するかどうかを尋ねます。初級Java秘密番号推測プログラム
私が残している問題は、私が推測を入力するときに、私が高すぎたり、低すぎたり、正しかったりということを伝えることをスキップすることです。なぜこれが起こっているのか分かりませんし、ランダムに発生するようです。
import java.util.Scanner;
public class GuessNumber
{
public static void main (String [] args)
{
Scanner in = new Scanner (System.in); //create scanner object
int maxNumber = 0; //declare variables
int userGuess = 0;
int totalGuesses = 0;
int secretNumber = 0;
String replay = "";
System.out.println("Welcome to the Secret Number Generator!");
do
{
System.out.println("Please input a maximum value for the secret number and press enter."); //prompt user to input a maximum value
maxNumber = in.nextInt();
secretNumber = (int) ((Math.random() * maxNumber) + 1); //generate the secret number
System.out.println("A new secret number has been chosen!"
+ "\nWhat do you think it is? Input your guess and press enter."); //prompt user to input a guess
userGuess = in.nextInt();
while (userGuess < secretNumber) //while user's guess is less than the secret number
{
System.out.println("Sorry, that is too low! Please try again."); //prompt user to input another guess; increment total number of guesses by 1
userGuess = in.nextInt();
totalGuesses ++;
}
while (userGuess > secretNumber) //while user's guess is greater than the secret number
{
System.out.println("Sorry, that is too high! Please try again."); //prompt user to input another guess; increment total number of guesses by 1
userGuess = in.nextInt();
totalGuesses ++;
}
if (userGuess == secretNumber) //if user guesses correctly
{
System.out.println("Nice job! Your guess, " + secretNumber + " is correct!" //congratulate and display total number of guesses
+ "\nTotal number of guesses: " + totalGuesses);
}
System.out.println("Would you like to play again? Please input \"Yes\" or \"No\" and press enter."); //ask user if they would like to play again
replay = in.next();
while (!replay.equalsIgnoreCase("Yes") && !replay.equalsIgnoreCase("No") //in case of invalid input
&& !replay.equalsIgnoreCase("\"Yes\"") && !replay.equalsIgnoreCase("\"No\""))
{
System.out.println("Sorry, that is an invalid input. Please input \"Yes\" or \"No\" and press enter.");
replay = in.next();
}
}
while(replay.equalsIgnoreCase("Yes") || replay.equalsIgnoreCase("\"Yes\"")); //replay while user says yes
if (replay.equalsIgnoreCase("No") || replay.equalsIgnoreCase("\"No\"")) //if user says no
{
System.out.print("Thanks for playing!");
}
} //end of main method
} //end of class GuessNumber
@msoliman私はupvoteでしたが、私の評判がとても低いので、それは表示されません。確かに私はそれを超えて正しい印をつけるつもりはない。 – Andrasa