Java 猜谜游戏没有';它不能正常工作。我可以';找不到
因此,我创建了一个猜测游戏,其中用户有三次猜测,并且必须猜测随机生成的数字。我想我已经控制住了一切,但是有一个bug我无法找到并修复它。当用户猜到正确的数字时,它应该说“你赢了!”,但我的程序没有这样做。我需要帮助Java 猜谜游戏没有';它不能正常工作。我可以';找不到,java,debugging,random,Java,Debugging,Random,因此,我创建了一个猜测游戏,其中用户有三次猜测,并且必须猜测随机生成的数字。我想我已经控制住了一切,但是有一个bug我无法找到并修复它。当用户猜到正确的数字时,它应该说“你赢了!”,但我的程序没有这样做。我需要帮助 import java.util.Scanner; 公开课猜测{ public static void main(String[] args) { Scanner firstG = new Scanner(System.in); Scanner secondG = new Sca
import java.util.Scanner;
公开课猜测{
public static void main(String[] args) {
Scanner firstG = new Scanner(System.in);
Scanner secondG = new Scanner(System.in);
Scanner thirdG = new Scanner(System.in);
int randomN = (int)(Math.random() * 10) +1;
System.out.println("I'm thinking of an integer in the range 1 to 10. You have three guess.");
System.out.println();
System.out.print("Enter your first guess: ");
int guess1 = firstG.nextInt();
if(guess1 > randomN) {
System.out.println("Too high!");
if(guess1 > randomN) {
System.out.println();
System.out.print("Enter your second guess: ");
int guess2 = secondG.nextInt();
if (guess2 > randomN) {
System.out.println("Too high!");
if (guess2 > randomN) {
System.out.println();
System.out.print("Enter your third guess: ");
int guess3 = thirdG.nextInt();
if (guess3 > randomN) {
System.out.println("Too high!");
System.out.println();
System.out.println("You lose. The was " + randomN);
if(guess1 == randomN) {
System.out.println("You win!");
if(guess2 == randomN) {
System.out.println("You win!");
if(guess3 == randomN) {
System.out.println("You win!");
}
}
}
}
}
}
}
}
if(guess1 < randomN) {
System.out.println("Toolow!");
if(guess1 < randomN) {
System.out.println();
System.out.print("Enter your second guess: ");
int guess2 = secondG.nextInt();
if(guess2 < randomN) {
System.out.println("Too low!");
if (guess2 < randomN) {
System.out.println();
System.out.print("Enter your third guess: ");
int guess3 = thirdG.nextInt();
if(guess3 < randomN) {
System.out.println("Too low");
System.out.println();
System.out.println("You lose. The number was " + randomN);
if(guess1 == randomN) {
System.out.println("You win!");
if(guess2 == randomN) {
System.out.println("You win!");
if(guess3 == randomN) {
}
}
}
}
}
}
}
}
}
}
publicstaticvoidmain(字符串[]args){
扫描仪firstG=新扫描仪(System.in);
Scanner secondG=新扫描仪(System.in);
扫描仪thirdG=新扫描仪(System.in);
int randomN=(int)(Math.random()*10)+1;
System.out.println(“我想的是一个介于1到10之间的整数,你有三个猜测。”);
System.out.println();
System.out.print(“输入您的第一个猜测:”);
int guess1=firstG.nextInt();
如果(猜测1>随机n){
System.out.println(“太高了!”);
如果(猜测1>随机n){
System.out.println();
System.out.print(“输入您的第二个猜测:”);
int guess2=secondG.nextInt();
如果(猜测2>随机n){
System.out.println(“太高了!”);
如果(猜测2>随机n){
System.out.println();
System.out.print(“输入第三个猜测:”);
int guess3=thirdG.nextInt();
如果(猜测3>随机数){
System.out.println(“太高了!”);
System.out.println();
System.out.println(“你输了,那是”+randomN);
如果(猜测1==randomN){
System.out.println(“你赢了!”);
如果(猜测2==randomN){
System.out.println(“你赢了!”);
如果(猜测3==randomN){
System.out.println(“你赢了!”);
}
}
}
}
}
}
}
}
如果(猜测1
我在您的代码中看到了一系列问题
首先,你不需要三台扫描仪
Scanner firstG = new Scanner(System.in);
Scanner secondG = new Scanner(System.in);
Scanner thirdG = new Scanner(System.in);
你只需要一个。这可能就是为什么您没有正确的输出
您需要调试您的程序,根据您提供的代码,我将假设您对此非常陌生,因此这里有一篇关于如何使用EclipseIDE调试Java程序的好文章
此外,如果你的条件太糟糕,完全没有必要,试着看看如何简化它们。一个好主意是买一个笔记本,看看你在现实生活中如何处理同样的情况。您将看到,这里粘贴的内容有一半以上是不必要的。您应该将其作为循环来编写 但是您实际的问题是
if(guess1==randomN)
语句在if(guess1>randomN)
语句中
guess1
不能同时是
和=
到randomN
,因此内部的if
语句永远不会是真的。对我来说,看起来应该是这样的
Scanner guess=new scanner(System.in);
int randomN = (int)(Math.random() * 10) +1;
for(int i=1;i<=3;i++)
{
int userNum=guess.nextInt();
if(userNum>randomN)
System.out.println("Too high!");
else if(userNum<randomN)
System.out.println("Too low!");
else if(userNum==randomN)
{
System.out.println("You Win!");
break;
}
}
Scanner guess=新扫描仪(System.in);
int randomN=(int)(Math.random()*10)+1;
对于(int i=1;irandomN)
System.out.println(“太高了!”);
else if(userNum)