我收到此代码的错误,弹出类文件编辑器:在Random.class选项卡中找不到源。我的线上出现了问题,即值= ...
我正在尝试创建一个通用方法,在我传入的两个整数之间生成一个随机数。
import java.util.Random;
public class RandomNumGen {
int value;
Random rand;
public RandomNumGen() {
rand = new Random();
}
public int intRandom(int min, int max) {
value = rand.nextInt(max) + min;
return(value);
}
public int choiceRandom(int first, int second, int third, int fourth) {
int random = intRandom(1, 400);
if (random < 100) {
return(first);
}else if (random > 100 && random < 200) {
return(third);
}else if (random > 200 && random < 300) {
return(fourth);
}
return(second);
}
}
帮助将不胜感激,
由于
答案 0 :(得分:1)
“找不到源”错误是因为它试图将源打开到java.util.Random
以帮助您进行调试而无法找到它。代码看起来正确,它应该执行没有错误;如果您将Random.nextInt
传递给非正数,IllegalArgumentException
会抛出choiceRandom(1, 2, 3, 4);
,但您传递的是400.我在运行该代码段并调用intRandom
<时没有任何错误/ p>
但是,从逻辑上讲,代码错误 - min
不会在max
和nextInt(max)
之间返回一个数字。您正在拨打0
,在max-1
和min
之间返回一个数字,然后添加min
,使得范围介于min+max-1
和{{1}之间}。您需要返回rand.nextInt(max-min) + min
如果你只是想要一个带有一堆整数并随机返回一个整数的方法,那么更简单的实现就是:
public int choiceRandom(int... numbers) {
return numbers[rand.nextInt(numbers.length)];
}