我的随机数字猜测游戏有问题吗 我需要java代码方面的帮助!

我的随机数字猜测游戏有问题吗 我需要java代码方面的帮助!,java,swing,random,while-loop,Java,Swing,Random,While Loop,希望它循环抛出所有内容,直到用户输入正确的数字。当用户输入错误的号码时,应该说“输入其他号码”。当用户输入正确的号码时,应该说“恭喜你赢了”。 但在那之前,它会循环并说“输入一个不同的数字”,5次尝试后,我想让它说“你这次任务失败了!你想再试一次吗?” import javax.swing.*; 导入java.util.Random; 公共类项目1{ 公共静态void main(字符串[]args){ 字符串编号; showMessageDialog(null,“欢迎参加猜谜游戏!”+“\n您将

希望它循环抛出所有内容,直到用户输入正确的数字。当用户输入错误的号码时,应该说“输入其他号码”。当用户输入正确的号码时,应该说“恭喜你赢了”。 但在那之前,它会循环并说“输入一个不同的数字”,5次尝试后,我想让它说“你这次任务失败了!你想再试一次吗?”

import javax.swing.*;
导入java.util.Random;
公共类项目1{
公共静态void main(字符串[]args){
字符串编号;
showMessageDialog(null,“欢迎参加猜谜游戏!”+“\n您将猜到1到20之间的数字。”+“\n希望您喜欢它!:”;
随机数=新随机数();
int guessnumber=anount.nextInt(20);
int随机;
number=JOptionPane.showInputDialog(“猜一个介于1和20之间的数字”);
random=整数.parseInt(数字);
while(随机==猜测数){
JOptionPane.showMessageDialog(null,“您赢了!”+“\n您的号码是“+”+guessnumber);
}
if(随机数<猜测数){
number=JOptionPane.showInputDialog(“您的号码太高了:(“+”\n请输入一个新的较低的号码!”);
random=整数.parseInt(数字);
}else if(随机>猜测数){
number=JOptionPane.showInputDialog(“您的号码太低了:(“+”\n请输入一个更高的数字!”);
random=整数.parseInt(数字);
}
}
}

这是因为您唯一的迭代语句仅显示“You won.”等:


将while循环下面的其他代码包含在while循环中。如果正确缩进代码,您应该能够发现自己的问题。这就是您要寻找的:

while (random != guessnumber){
    //prompt for user input
    if (random < guessnumber){
        //Show Message "Your number is too low...
    }
    else if (random > guessnumber){
        //Show Message "Your number is too high..."
    }
    else{    //got the number
        //Show Message "you won!.."
    }
}
while(随机!=猜测数){
//提示用户输入
if(随机数<猜测数){
//显示消息“您的号码太低。。。
}
else if(随机>猜测数){
//显示消息“您的号码太高…”
}
否则{//我就知道了
//显示消息“您赢了!”
}
}

这是因为您唯一的迭代语句仅显示“You won.”等:


将while循环下面的其他代码包含在while循环中。如果正确缩进代码,您应该能够发现自己的问题。这就是您要寻找的:

while (random != guessnumber){
    //prompt for user input
    if (random < guessnumber){
        //Show Message "Your number is too low...
    }
    else if (random > guessnumber){
        //Show Message "Your number is too high..."
    }
    else{    //got the number
        //Show Message "you won!.."
    }
}
while(随机!=猜测数){
//提示用户输入
if(随机数<猜测数){
//显示消息“您的号码太低。。。
}
else if(随机>猜测数){
//显示消息“您的号码太高…”
}
否则{//我就知道了
//显示消息“您赢了!”
}
}

带有“you win”的else块将永远不会被命中,如果代码保持原样,它将进入一个繁忙的循环,输出相同的消息(因为它永远不会得到新的输入)@Chris我用注释而不是长代码简化了解决方案,以提高可读性。.输入提示出现在我的代码注释
Show message中“您的号码太低…提示输入"
。也就是说,他将同时显示和提示,因为op使用的是JOptionpane。现在wrt提示更清晰,但else块仍然不会显示hit@LuckeGG再次查看我的解决方案,您应该在所有if语句之前提示用户。如果它有效,您可以通过单击
空心勾选
在我的答案旁边。你会得到2个代表点作为回报。你的else块和“You win”将永远不会被击中,代码保持不变,它只会进入一个繁忙的循环,输出相同的消息(因为它永远不会得到新的输入)@Chris我用注释而不是长代码简化了解决方案,以提高可读性。输入提示出现在我的代码注释
Show消息“您的号码太低…提示输入”
。也就是说,他将同时显示和提示,因为op使用的是JOptionpane。现在wrt提示更清晰,但else块仍然不会显示hit@LuckeGG再次查看我的解决方案,您应该在所有if语句之前提示用户。如果它有效,您可以通过单击
空心勾选
除了我的答案,你还可以得到2分。
while (random != guessnumber){
    //prompt for user input
    if (random < guessnumber){
        //Show Message "Your number is too low...
    }
    else if (random > guessnumber){
        //Show Message "Your number is too high..."
    }
    else{    //got the number
        //Show Message "you won!.."
    }
}