Java中的随机整数

Random integer in Java

本问题已经有最佳答案,请猛点这里访问。

这是我的问题。输入2个整数(x和y)并打印x和y之间的随机整数。我想知道为什么我的代码不打印随机整数。我仍然是Java初学者,任何帮助都会很好。谢谢您。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
class Random_integer {
    public static void main(String[] args) {
        Random randomNum = new Random();
        Scanner input = new Scanner(System.in);
        int integer1, integer2;
        System.out.print("Enter two integer :
"
);
        System.out.print("
 Integer 1 :"
);
        integer1 = input.nextInt();
        System.out.print("
 Integer 2 :"
);
        integer2 = input.nextInt();
        randomNum = new Random(integer1, integer2);
        System.out.print("
 Random number :"
+randomNum);
    }
}


尝试下面的代码。randomize(int x, int y)中的参数,其中x是最小数。其中y为最大数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.*;

class Random_integer
{
    public static void main(String[] args){
        int integer1, integer2;
        Scanner input = new Scanner(System.in);
        System.out.print("Enter two integer :
"
);
        System.out.print("
 Integer 1 :"
);
        integer1 = input.nextInt();
        System.out.print("
 Integer 2 :"
);
        integer2 = input.nextInt();

        Random_integer ri = new Random_integer();
        ri.randomize(integer1,integer2);
    }

    public void randomize (int x,int y) {
        Random randomNum = new Random();
        int rand = randomNum.nextInt((y-x)+1)+x;
        System.out.print("
 Random number :"
+rand);
    }
}


您错误地调用了Random构造函数,Random(integer1, integer2)将不会编译,因为Random没有接受两个整型参数的构造函数。

如果要在某个范围内创建随机数,请使用以下命令:

1
int rand = randomNum.nextInt((integer2 - integer1) + 1) + integer1


java.util.Random是用来生成随机数的类。构造函数不采用最小值和最大值作为参数,但nextInt()方法可以满足您的需要:

1
2
randomNum = new Random();
System.out.println("Random number:" + random.nextInt(integer1, integer2));


java.util.Random是随机数生成器,不是数字。您可以使用它生成一个随机整数,如下所示:

1
2
Randrom rand = new Random();
int randomNum = x + rand.nextInt(y - x + 1);