在回答网友的问题时,才发现自己对随机数了解的太少了。这里把自己的代码贴上来,以后再连续打印随机数的时候,就能用到了。
其实,无论怎么做,都是伪随机数吧,只不过生成随机数的公式不是人可以一下子计算出来的,也就是因为人不可迅速预见这个值,才叫它随机数吧。
package com.bobo.java;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class HelloWorld {//不要在意我的类名,这是我直接改了HelloWorld
private static int i = 0;//全局静态变量,用来统计打印次数
public static void main(String[] args){
Random r = new Random();//随机数生成。我试过了Math.random(),
//和这个一样,如果按照我之前的方法,六个数打印出来都一样。
Timer timer = new Timer();//所以我想到了计时器
TimerTask tt = new TimerTask() {//计时器定期执行的任务写在下面的run()里。
@Override
public void run() {
//以后会定时执行这个run方法,所以外面再写多少代码都白搭,不会读的。
if(HelloWorld.i>4){//本来写了小于5,但发现打印了7个数,下面我会提及为什么写4
timer.cancel();//取消计时器任务
}
int a=0;
while(a<100){//随机的数小于100时重新随机
a=r.nextInt(201);//随机数的范围是0到201(不包括201)
if(a>99){//随机数在[100,200]之间的时候打印
System.out.println(a);
HelloWorld.i++;//累加打印次数
}
}
}
};
/*下面是计时器循环执行任务,参数分别对应TimerTask对象(run方法里是要执行的代码)、
* int型数值(表示从现在起等待多少毫秒执行任务)、int型数值(表示从两次任务之间等待的间隔时间)
* 所以下面这句代码一执行,首先等待1毫秒后执行tt.run(),然后等待3000毫秒后再等待1毫秒执行tt.run()...
*/
timer.schedule(tt, 1, 3000);
}
}