这是我得到的问题,如何将其限制在一个范围内?我的代码如下。感谢
问题:编写一个方法调用genRandom()来生成5个1到100之间的随机整数,并将它们打印到屏幕上。在main()中调用genRandom()。
import java.util.Random;
class RandomNumbers{
public static void main(String [] args){
Random randomNum = new Random();
for(int i = 0; i<5; i++){
System.out.println("Random number is : " + randomNum.nextInt(5));
}
}
}
答案 0 :(得分:4)
在nextInt()
nextInt(100)
根据您的评论进行更新
只需创建一个新的静态方法
public static int genRandom(){
return new Random().nextInt(100);// or may be cache random instance
}
答案 1 :(得分:1)
在genRandom()
课程中撰写RandomNumbers
并使用如下:
public class RandomNumbers{
static Random randomNum = new Random();
public static void main(String[] args){
for(int i=0; i< 5; i++){
System.out.println("Random number is : " + genRandom());
}
}
public static int genRandom(){
return randomNum.nextInt(100);
}
}
答案 2 :(得分:0)
nextInt
生成介于0和给定范围值之间的随机数。如果你给5
,它将在5之间随机生成。如果你想要1到100之间的随机数,你将在nextInt
方法中给出100。
请阅读java 6 api文档http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt(int)。
答案 3 :(得分:0)
您可以尝试这样的事情:
package com.stackoverflow.works;
import java.util.Random;
public class RandomNumber {
public static int genRandom(int randomRange) {
return new Random().nextInt(randomRange);
}
public static void genRandom(int randomRange, int displayCount) {
for (int i = 0; i < displayCount; i++) {
System.out.println("Random Number [Iteration " + (i + 1) +"]: " + genRandom(randomRange));
}
}
public static void main(String[] args) {
int randomRange = 100; // You can change the limit if required
int displayCount = 5; // You can decide the iteration count
RandomNumber.genRandom(randomRange, displayCount);
}
}
<强>输出:强>
Random Number [Iteration 1]: 14
Random Number [Iteration 2]: 84
Random Number [Iteration 3]: 96
Random Number [Iteration 4]: 38
Random Number [Iteration 5]: 61
答案 4 :(得分:-1)
您可以使用下面的nextDouble()
:
r = minValue + ((new Random()).nextDouble() * (maxValue - minValue));
其中minValue, maxValue
是您想要随机数的范围。
完整代码
import java.util.Random;
class Main {
int genRandom(int minValue, int maxValue) {
return (int) (minValue + ((new Random()).nextDouble() * (maxValue - minValue)));
}
public static void main(String [] args){
Main m = new Main();
for(int i = 0; i<5; i++){
System.out.println("Random Number is: " + m.genRandom(1, 100));
}
}
}
示例输出:
Random Number is: 95
Random Number is: 89
Random Number is: 9
Random Number is: 73
Random Number is: 20