Java 如何修复此代码中的replay函数?
我编写此代码是为了让玩家猜一个随机数。在他们完成猜测或得到正确答案后,程序将结束。这部分现在还可以。但是,第二部分,当他们完成第一轮时,我希望程序询问用户是否想要重播。但是“我想重播”的功能在这里不起作用。有人能帮我修改一下吗Java 如何修复此代码中的replay函数?,java,Java,我编写此代码是为了让玩家猜一个随机数。在他们完成猜测或得到正确答案后,程序将结束。这部分现在还可以。但是,第二部分,当他们完成第一轮时,我希望程序询问用户是否想要重播。但是“我想重播”的功能在这里不起作用。有人能帮我修改一下吗 public static void main( String [] args ) { Scanner scan = new Scanner(System.in); //create scanner object int maxNumber = 0; /
public static void main( String [] args )
{
Scanner scan = new Scanner(System.in); //create scanner object
int maxNumber = 0; //initial value for MaxNumber
int userGuess = 0; //initial value for UserGuess
int totalGuesses = 0; //initial value for TotalGuesses
int randomNumber = 0; //initial value for RandomNumber
int maxAttempts = 0; //initial value for MaxAttempts
int end = 0;
int replay = 0;
do
{
System.out.println( "Please enter a maximum value: " ); //Ask user to input a max number
maxNumber = scan.nextInt(); //set MaxNumber to user input
System.out.println( "Please enter a maximum attempts: " ); //Ask user to input max attempts
maxAttempts = scan.nextInt(); //set Attempts to user input
randomNumber = (int) ( maxNumber * Math.random() ) + 1; //generate a secret number
System.out.println( "A new secret number has been generated"
+ "\n Input your guess" ); //ask user to input a guess
while (totalGuesses < maxAttempts)
{
userGuess = scan.nextInt(); //set UserGuess to user input
totalGuesses++; //increment total number of guesses by 1
if (userGuess < randomNumber) //while user's guess is less than the secret number
{
System.out.println("Sorry, that is too low! Please try again.");
}
else if (userGuess > randomNumber) //while user's guess is greater than the secret number
{
System.out.println("Sorry, that is too high! Please try again.");
}
else if (userGuess == randomNumber) //if user guesses correctly
{
System.out.println(" Your guess is correct!" // let user know the guess is correct
+ "\n Total number of guesses: " + totalGuesses); // display total number of guesses
}
while (userGuess == randomNumber | totalGuesses == maxAttempts)
{
System.out.println("Would you like to play again? Please input 1 for Yes or 2 for no and press enter.");
//ask user if they would like to play again
replay = scan.nextInt();
if (replay == 1);
{
end == 0;
}
if (replay == 2);
{
end == 1;
System.out.print("Thanks for playing!");
}
}
}
}while (end == 0);
}
publicstaticvoidmain(字符串[]args)
{
Scanner scan=新扫描仪(System.in);//创建扫描仪对象
int maxNumber=0;//maxNumber的初始值
int userGuess=0;//userGuess的初始值
int totalGuesses=0;//totalGuesses的初始值
int randomNumber=0;//randomNumber的初始值
int maxAttempts=0;//maxAttempts的初始值
int end=0;
int=0;
做
{
System.out.println(“请输入最大值:”;//要求用户输入最大值
maxNumber=scan.nextInt();//将maxNumber设置为用户输入
System.out.println(“请输入最大尝试次数:”;//请用户输入最大尝试次数
maxAttempts=scan.nextInt();//设置对用户输入的尝试
randomNumber=(int)(maxNumber*Math.random())+1;//生成一个密码
System.out.println(“已生成新的密码”
+“\n输入您的猜测”);//请用户输入猜测
while(总猜测次数<最大尝试次数)
{
userGuess=scan.nextInt();//将userGuess设置为用户输入
totalGuesses++;//将猜测总数增加1
if(userGuessrandomNumber)//当用户的猜测大于秘密数时
{
System.out.println(“对不起,太高了!请再试一次”);
}
else if(userGuess==randomNumber)//如果用户猜对了
{
System.out.println(“您的猜测是正确的!”//让用户知道猜测是正确的
+“\n猜测总数:”+totalGuesses);//显示猜测总数
}
while(userGuess==randomNumber | TotalGuess==maxAttempts)
{
System.out.println(“您想再次播放吗?请输入1表示是,或输入2表示否,然后按enter键”);
//询问用户是否希望再次播放
replay=scan.nextInt();
如果(重播==1);
{
end==0;
}
如果(重播==2);
{
end==1;
System.out.print(“感谢您的参与!”);
}
}
}
}而(end==0);
}
我希望当用户输入1时,他们可以重播。当他们输入2时,程序应该停止。如果您检查重播值,您没有为结束赋值,您有
=
。您需要重新处理您的逻辑<代码>结束==0代码>应为end=0
和if
条件不应以分号结尾。另外,userGuess
、randomNumber
、totalGuesses
和maxturets
在while循环中从不更改,因此它实际上变成了一个infinte循环。在检查重播值时,您没有为end分配值,您有=
。您需要重新处理您的逻辑<代码>结束==0代码>应为end=0
和if
条件不应以分号结尾。另外,userGuess
、randomNumber
、totalGuesses
和maxtures
在while循环中从不更改,因此它实际上成为一个infinte循环。