Java编译缺少return语句错误

时间:2014-06-29 22:51:05

标签: java compiler-errors return

我正在尝试学习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;
    }

}

4 个答案:

答案 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