我正在用BlueJ编写一个Java程序,我正在使用一个伪随机生成器来生成一个介于最大数和最小数之间的随机数。我没有得到任何语法错误,但是当我调用这个方法时,它告诉我它是一个空的。有谁知道吗?我已经导入了Random类,它在构造器中被称为随机化器。
public void attackEnemy()
{
int damage = 0;
int max = 41;
int min = 20;
damage = randomizer.nextInt(max - min) + min;
health = health - damage;
}发布于 2013-03-12 22:40:14
这是你做的吗?
randomizer = new Random();在所显示的代码段中,唯一可以为null的值是randomizer对象。您应该在类中正在使用的其他位置实例化它。
发布于 2013-03-12 22:40:45
像这样初始化你的randomizer:
randomizer = new Random(); // Without this, it'll throw a NPE发布于 2016-05-10 01:53:12
你需要声明随机数发生器实际上是一个随机数。在您的原始代码中,看起来您也没有完全完成计算。看一下下面的内容:
public void attackEnemy(){
int max = 41;
int min = 20;
Random randomizer = new Random();
int damage = min + (max - min) * randomizer.nextInt();
health = health - damage;
}我也认为你收到空输出的原因,是因为你没有返回任何东西。因此,您还可以将其显示为以下内容:
public int attackEnemy(){
int max = 41;
int min = 20;
Random randomizer = new Random();
int damage = min + (max - min) * randomizer.nextInt();
health = health - damage;
return health;
}https://stackoverflow.com/questions/15364237
复制相似问题