如何使用Math.random()获取范围内的随机数

Tar*_*ash 4 java random math

我不太熟悉,Math.random();我不知道该怎么办我想要的条件.我想生成0到52之间的随机整数到目前为止这是我设置的.

    public class Tester{
    public static void main(String args[]){
        int size=52;
        while(size>0){
            int rando=(int)Math.random()*size;
            size--;
            System.out.println(rando);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码打印出全0,直到满足while循环的条件.我想知道如何生成一个介于0到52之间的随机整数.我明白这Math.random();会生成一个双重的,我认为这是类型转换的一个问题.谢谢.

osa*_*ger 7

您只能投射Math.random().它的值介于0和1之间(不包括1).如果你施放它,无论如何都是零.

抛出整个表达式: (int)(Math.random()*size);

BTW:您的间隔时间仅为0到51(因为排除1.

使用(int)(Math.random()*(size+1));,如果你想0 ... 52的区间.