所以我创建了一个猜谜游戏,其中用户有三个猜测,并且必须猜测随机生成的数字。我想我已经掌控了所有这些,但有一个我无法找到并修复它的错误。当用户猜出正确的号码时,它应该说"你赢了!",但我的程序没有这样做。需要帮忙。
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) {
}
}
}
}
}
}
}
}
}
}
答案 0 :(得分:1)
我在你的代码中看到了很多问题。
首先,您不需要三个扫描仪
Scanner firstG = new Scanner(System.in);
Scanner secondG = new Scanner(System.in);
Scanner thirdG = new Scanner(System.in);
你只需要一个。这可能是您没有正确输出的原因。
你需要调试你的程序,从你提供的代码我会假设你真的是新手,所以这里有一篇关于如何使用eclipse IDE调试Java程序的好文章。 http://www.vogella.com/tutorials/EclipseDebugging/article.html
此外,如果条件过于严格且完全不必要,请尝试了解如何简化它们。一个好主意是获得一个笔记本,看看你如何在现实生活中处理这些问题。你会发现你所粘贴的东西的一半以上是不必要的。
答案 1 :(得分:1)
你应该把它写成一个循环。
但是你的实际问题是if(guess1 == randomN)
语句里面是 if(guess1 > randomN)
语句。
guess1
不能同时为>
和==
到randomN
,因此内部if
语句永远不会成立。
答案 2 :(得分:0)
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;
}
}