我收到一个错误,这段代码弹出类文件编辑器:源未在Random.class选项卡中找到。我的那行value =…
有问题我正在尝试创建一种通用方法,在我传入的两个整数之间生成一个随机数。
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);
}
}
请帮忙,
谢谢
"source not found"错误是因为它试图打开源代码到java.util.Random
以帮助您调试,但无法找到它。代码看起来是正确的,因为它应该没有错误地执行;如果你传递一个非正数,Random.nextInt
会抛出一个IllegalArgumentException
,但是你传递的是400。我没有得到任何错误运行代码片段和调用choiceRandom(1, 2, 3, 4);
然而,逻辑上代码是错误的——intRandom
不返回min
和max
之间的数字。您正在调用nextInt(max)
,它返回0
和max-1
之间的数字,然后添加min
,使min
和min+max-1
之间的范围。你需要返回rand.nextInt(max-min) + min
如果你只想要一个接受一堆整数并随机返回一个的方法,一个更简单的实现是:
public int choiceRandom(int... numbers) {
return numbers[rand.nextInt(numbers.length)];
}