我正在尝试学习java,通过闲逛和创建不同的东西,如这个骰子的例子。但是,在下面的课程中,我被困在这个错过的回报中,但我不确定为什么。感谢所有帮助!
Test1.java:12:错误:缺少return语句 } ^ 1错误
import java.util.Random;
class Char
{
Random r = new Random();
int nSides;
public int Die(int sides)
{
this.nSides = sides;
r = new Random();
}
public int roll()
{
return r.nextInt(nSides + 1);
}
public int roll(int times)
{
int sum = 0;
for (int i = 0; i < times; i++)
{
sum += roll();
}
return sum;
}
}
答案 0 :(得分:2)
看起来你正在尝试编写一个构造函数,它自然没有返回值。 构造函数必须具有与其构造的类相同的名称。
将public int Die
替换为以下内容。
public Char(int sides)
{
this.nSides = sides;
r = new Random();
}
或者,您可以重命名您的班级Die
。
public class Die {
public Die(int sides)
{
this.nSides = sides;
r = new Random();
}
// Rest of your code
}
答案 1 :(得分:0)
你需要说
public Char(int sides)
或者,假设您希望该类真正被称为“Die”,请将类声明更改为:
class Die
和构造函数(?)行到:
public Die(int sides)
(删除“int”)。
答案 2 :(得分:0)
在函数Die apply return语句中:
public int Die(int sides)
{
this.nSides = sides;
r = new Random();
return 0; // whatever you want to return
}
或在死亡前删除int
并将其设为void
。
public void Die(int sides)
{
this.nSides = sides;
r = new Random();
}
答案 3 :(得分:0)
看起来你正在尝试创建一个名为Die
的类,这就是它的构造函数。试试这个:
import java.util.Random;
class Die {
private Random r = new Random();
private final int nSides;
public Die(int sides) {
this.nSides = sides;
}
// rest of class omitted
}
注意:
Random
字段(删除行)nSides
声明为final
(请参阅代码)private