在 Java 中生成随机数时出错。(包括代码和错误)



我收到一个错误,这段代码弹出类文件编辑器:源未在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不返回minmax之间的数字。您正在调用nextInt(max),它返回0max-1之间的数字,然后添加min,使minmin+max-1之间的范围。你需要返回rand.nextInt(max-min) + min

如果你只想要一个接受一堆整数并随机返回一个的方法,一个更简单的实现是:

public int choiceRandom(int... numbers) {
    return numbers[rand.nextInt(numbers.length)];
}

最新更新