Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复此代码中的replay函数?_Java - Fatal编程技术网

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循环。