随机数生成器总是在for循环中生成相同的数字?

时间:2014-03-28 23:36:14

标签: java random

这是我的代码,我一直得到的输出是:

Number is:54
Number is:54
.
.
.
Number is:54
Number is:54
Number is:54
Number is:54
Process completed.

代码:

import java.util.Random;

public class random {

    private static Random call = new Random();
    private static int numb = call.nextInt(75) + 1;

    public static void main(String[] args) {

        for(int i = 0; i < 50; i++){
            if (numb < 16) {
                System.out.println("Number is:" + numb);
            } else if (numb < 31 && numb > 15) {
                System.out.println("Number is:" + numb);
            } else if (numb < 46 && numb > 30) {
                System.out.println("Number is:" + numb);
            } else if (numb < 61 && numb > 45) {
                System.out.println("Number is:" + numb);
            } else {
                System.out.println("Number is:" + numb);
            }
        }
    }    
}

有没有办法修复代码而不用放

private static Random call = new Random();
private static int numb = call.nextInt(75) + 1;

在主码? (表示没有创建new Random()及其在主代码中生成的数字)

原因是我还需要将int“numb”传递给其他类,它们必须是相同的参数。如果我坚持     numb = call.nextInt(75)+ 1; 在主类的for循环中。当然它会起作用,但“麻木”的参数在每一个班级都会有所不同。

谢谢!

1 个答案:

答案 0 :(得分:4)

坚持:

numb = call.nextInt(75) + 1;

进入你的for循环。它将重用您已创建的静态随机数。