Java 猜谜游戏没有';它不能正常工作。我可以';找不到

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

因此,我创建了一个猜测游戏,其中用户有三次猜测,并且必须猜测随机生成的数字。我想我已经控制住了一切,但是有一个bug我无法找到并修复它。当用户猜到正确的数字时,它应该说“你赢了!”,但我的程序没有这样做。我需要帮助

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)