Random类:
主要方法:
返回值 | 方法 | 描述 |
boolean | nextBoolean() | 返回一个布尔型随机数 |
double | nextDouble() | 返回一个double型随机数 |
float | nextFloat() | 返回一个float型随机数 |
int | nextInt() | 返回一个int型随机数 |
int | nextInt(int n) | 返回介于[0,n)int型随机数 |
long | nextLong() | 返回一个long型随机数 |
void | setSeed(long newseed) | 将newseed指定的值设为种子 |
案列:
生成[100,200]区间的随机数
分析:
以nextInt(int n)方法为例,可以生成任意区间的随机数,比如生成[100,到200]内的随机数,由于区间是[0,n),故可以选n=101,再加100,即nextInt(101)+100;由于Random不是真正的随机,也叫伪随机,我们可以设置一个时间种子。
代码如下:
public static void main(String[] args) { // 创建一个Random对象 Random random = new Random(); // 把当前时间设置为种子 random.setSeed(System.currentTimeMillis()); // 生成100个[100,200]的随机数 for (int i = 0; i < 100; i++) { int num = random.nextInt(101)+100; System.out.println(num); } }
扩展:
根据生成随机数,完成猜数字小游戏
代码实现:
public class Test2 { public static void main(String[] args) { // 创建一个数组 int[] a=new int[50]; // 创建一个Random对象生成随机数 Random random =new Random(); // 获取数组长度 int length = a.length; // 循坏给数组赋值 for (int i = 0; i < length; i++) { a[i]=random.nextInt(50); } // 创建Scanner对象,键盘输入 Scanner input = new Scanner(System.in); System.out.println("请输入50以内的数:"); int num = input.nextInt(); boolean flag = false; for (int i:a ) { if(num==i){ flag=true; break; } } if (flag) { System.out.println("恭喜你,猜对了"); }else{ System.out.println("抱歉,你猜错了"); } } }