Java 不是声明

Java 不是声明,java,Java,我正在从一本书中学习用java编写代码。它给出了一个猜谜游戏的示例并给出了代码。我想把它作为参考。但我一直在犯错误。这可能是我打字的方式,因为我在kindle上阅读,结果有点混乱 像这样的错误有很多,但没有一个像我这样。我试图做一个猜谜游戏,但我不断地得到这个错误: 猜游戏。java:17:不是一句话 (int)(Math.random()*10)+1 代码: import java.util.Scanner; 公开课猜谜游戏 { 静态扫描仪sc=新 扫描仪(System.in); 公共静态空间

我正在从一本书中学习用java编写代码。它给出了一个猜谜游戏的示例并给出了代码。我想把它作为参考。但我一直在犯错误。这可能是我打字的方式,因为我在kindle上阅读,结果有点混乱

像这样的错误有很多,但没有一个像我这样。我试图做一个猜谜游戏,但我不断地得到这个错误:

猜游戏。java:17:不是一句话 (int)(Math.random()*10)+1

代码:

import java.util.Scanner;
公开课猜谜游戏
{
静态扫描仪sc=新
扫描仪(System.in);
公共静态空间
main(字符串[]args)
{
bolean keepPlaying=true;
System.out.println(“让我们玩一个猜谜游戏吧!”);
同时(继续播放)
{
波伦有效输入;
整数,猜测;
字符串回答;
//选择一个随机数=
(int)(Math.random()*10)+1;
//猜猜看
System.out.print(“您认为它是什么?”);
做
{
猜测=sc.nextInt();
validInput=true;
如果((猜测<1)| |(猜测>10))
{
系统输出
(“我说的是1到10之间。”
+“再试一次:”;
validInput=假;
}
}而(!validInput);
//猜猜看
如果(猜测==数字)
System.out.println(
“你说得对!”;
其他的
System.out.println(
“你错了!”+“号码是”+number);
//再来一次?
做
{
System.out.println(“\n再次显示?(是或否)”);
答案=sc.next();
validInput=true;
如果(asnwer.equalsIgnoreCase(“是”);
否则,如果(回答:egualsIgnoreCase(“否”)-
持续播放=错误);
其他的
validInput=假;
}而(!validInput);
}
System.out.println(“\n感谢您的参与!”);
}
}这是真的,
(int)(Math.random()*10)+1不是一个语句。与其他语言不同,Java不允许只使用表达式作为语句

我认为上面评论中的
number
一词属于这一行:

不是:

但是:


(上面已经有了一个
int number;
,所以变量已经声明了,所有内容都已声明。)

您有一个
number
变量正在被引用,但从未创建过。我假设这是需要取正确数字的变量。更改:

(int)(Math.random() * 10) + 1;

这是因为
(int)(Math.random()*10)+1
只获取一个随机数作为
int
,但不将其存储为任何内容。试着这样做

number = (int)(Math.random() * 10) + 1;

您需要将您在语句中计算的值分配给变量。 在您的情况下,它是可变数字

number = (int)(Math.random() * 10) + 1;

你怎么看
(int)(Math.random()*10)+1应该按原样做吗?你为什么这么想?你怎么处理表达式
(int)(Math.random()*10)+1
?你在做一个数学运算,并对那个运算进行转换。。。然后再也不要把结果赋给变量,所以结果只是。。。“挂起”在那里…如果你修改了格式,你会在上面一行找到语句的另一半…为什么有人否决了这个问题?这家伙只是想学写Java。@Quilliom:是的,但我刚才评论的hexa的答案版本重新说明了它。他已经取消了重新声明。
(int)(Math.random() * 10) + 1;
number = (int)(Math.random() * 10) + 1;
number = (int)(Math.random() * 10) + 1;
number = (int)(Math.random() * 10) + 1;