我正在从书中学习用java编写代码。它给出了一个猜谜游戏的例子并给出了代码。我想把它作为参考。但我不断收到错误。它可能是我输入它的方式因为我正在读它的点燃它有点搞砸了。
有很多这样的错误,但没有像我这样的错误。我正在尝试制作一个猜谜游戏,但我一直收到这个错误:
GuessingGame.java:17:不是声明 (int)(Math.random()* 10)+ 1;
代码:
import java.util.Scanner;
public class GuessingGame
{
static Scanner sc = new
Scanner(System.in);
public static void
main(String[] args)
{
bolean keepPlaying = true;
System.out.println("Let's play a guessing game!");
while (keepplaying)
{
bolean validInput;
int number, guess;
String answer;
// Pick a random number =
(int)(Math.random() * 10) + 1;
// Get the guess
System.out.print("What do you think it is? ");
do
{
guess = sc.nextInt();
validInput = true;
if ((guess < 1) || (guess > 10))
{
System.out.print
("I said between 1 and 10. "
+ "Try again: ");
validInput = false;
}
}while (!validInput);
// Check the guess
if (guess == number)
System.out.println(
"You're right!");
else
System.out.println(
"You're wrong! " + "The number was " + number);
// Play again?
do
{
System.out.println("\nPlay again? (Yes or No)");
answer = sc.next();
validInput = true;
if (asnwer.equalsIgnoreCase("Yes"));
else if (answer.egualsIgnoreCase("No")-
keepPlaying = false);
else
validInput = false;
} while (!validInput);
}
System.out.println("\nThank you for playing!");
}
}
答案 0 :(得分:6)
确实如此,(int)(Math.random() * 10) + 1;
不是声明。与其他语言不同,Java不允许将表达式作为语句。
我认为上面评论中的number
一词属于这一行:
不
// Pick a random number =
(int)(Math.random() * 10) + 1;
可是:
// Pick a random number
number = (int)(Math.random() * 10) + 1;
(上面已经有int number;
,所以变量已经声明了所有内容。)
答案 1 :(得分:2)
您需要将语句中计算的值分配给变量。 在你的情况下,它是可变数字。
number = (int)(Math.random() * 10) + 1;
答案 2 :(得分:1)
您有一个number
变量被引用但从未创建过。我假设这是需要采用正确数字的变量。变化:
(int)(Math.random() * 10) + 1;
到
number = (int)(Math.random() * 10) + 1;
答案 3 :(得分:1)
这是因为(int)(Math.random() * 10) + 1;
只是将一个随机数作为int
,但不会将其存储为任何内容。试着这样做。
number = (int)(Math.random() * 10) + 1;