0

这是我得到的问题,我怎样才能将它限制在一个范围内?我的代码如下。谢谢

问题:编写一个调用 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));
            }
    }
}
4

5 回答 5

4

使用 100 作为参数nextInt()

nextInt(100)

根据您的评论更新

只需创建一个新的静态方法

public static int genRandom(){
  return new Random().nextInt(100);// or may be cache random instance
}
于 2012-10-14T06:30:39.160 回答
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);
       }   
    }
于 2012-10-14T06:41:07.130 回答
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 ) 。

于 2012-10-14T06:35:59.147 回答
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
于 2012-10-14T07:13:16.820 回答
-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
于 2012-10-14T06:33:25.220 回答