今天的内容主要就是随机数的二种方式和有关随机数的二个案例
1.Math方法
语法:Math.random();
生成的是0.0~1.0之间的随机浮点数
备注:前包括后不包括0.0可能会生成,1.0不会生成
2.Random类
语法:Random r = new Random();
常用的方法:
r.nextInt();生成int取值范围内的任意一个整数
r.nextInt(范围):生成指定范围内的整数
例子:生成1~100的随机整数
r.nextInt(100)+1; 1~101;但是取不到101,所以为1~100
案例:
1、猜数字游戏(1~100)
先1~100之间的整数,从控制台输入你猜的数字和随机生成的数比较,总分一百分,每猜错一次扣10分,猜对后剩多少分
以下是主要代码:
Scanner s = new Scanner(System.in);
Random r = new Random();
int num = r.nextInt(100)+1;
int score = 100;
while(true) {
System.out.println("请输入你猜的数:");
int cai = s.nextInt();
if(cai!=num) {
score = score - 10;
if(score==0) {
System.out.println("你真笨,10次都没有猜中!");
break;
}else {
if(cai>num) {
System.out.println("你猜的数大了");
}else {
System.out.println("你猜的数小了");
}
}
}else {
System.out.println("真棒,你猜对了,"+"共获得"+score+"分");
break;
2.双色球
红球:1~33个号码中随机生成6个号码(不能重复)放入红球数组中去,生成完之后用冒泡排序进行排序
蓝球:1~16个号码中随机获取一个号码,通过数组的扩容添加到数组中去
以下是关键代码:
Random r = new Random();
//定义一个空数组用于存放数据
int[] arr = {};
//定义一个计数器
int num = 0;
//取6个数,循环6次
out: for(;;) {
//定义一个开关
boolean flag = false;
//红球获取的随机数
int hong = r.nextInt(33)+1;
//判断随机数数组中是否已经存在
in: for(int i = 0;i<arr.length;i++) {
//判断数组中对否已经存在该数,如果存在,则不放入数组中
if(arr[i] == hong) {
flag = true;
continue out;
}
}
if(!flag) {
num++;
if(num<6) {
arr = Arrays.copyOf(arr, arr.length+1);
arr[arr.length-1] = hong;
}else {
break out;
}
}
}
//使用冒泡排序将数组排序
for(int i = 0;i<arr.length-1;i++) {
for(int j = 0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
//蓝球获取随机数
int lan = r.nextInt(16)+1;
arr = Arrays.copyOf(arr, arr.length+1);
arr[arr.length-1] = lan;
System.out.println(Arrays.toString(arr));
}