随机数Random类
API截图-JavaSE17
api.jpgnextInt()
- nextInt(n)功能只能生成0~n的随机数,范围包括0不包括n
- 生成的随机数是int型
- java利用nextInt()只能生成从0开始,n-1结束的数
利用上述第三条特性生成伪随机数,指定区间的办法就是在生成的区间加上差值
例如:需要生成510的随机数,因为5在随机数内,10不在随机数内,因此区间nextInt(10)生成的是010
加上5即nextInt(10)+5可生成515的随机数,则更改之前的上界为5即nextInt(5)+5即可实现510的伪随机
package com.java.test;
import java.util.Random;
/**
* 生成随机数
*/
public class RandomRange {
public static void main(String[] args) {
Random r = new Random();
//生成3-17区间的随机数,注区间为[3,17],生成次数在10以内随机
for (int i = 0; i < r.nextInt(10); i++) {
int a = r.nextInt(15) + 3; //17作为上界按照需求是随机的,因此实际上界为18,18-3差值为15
System.out.println(a);
}
}
}
猜数游戏
给定区间为[1,100],在该区间内生成一个伪随机数,让用户进行猜数,猜大猜小都给出提示并利用死循环进行反复测试,直到用户成功猜出该随机数为止并统计出猜测的次数
package com.java.test;
import java.util.Random;
import java.util.Scanner;
/**
* 猜数游戏,数为任意数,利用死循环反复猜测
*/
public class GuessGame {
public static void main(String[] args) {
System.out.println("猜数游戏,请合法输入[1,100]的任意数进行猜测");
Scanner sc = new Scanner(System.in);
Random r = new Random();
int count = 0;
int a = r.nextInt(100) + 1;
do {
count++;
int m = sc.nextInt();
if (m == a) {
System.out.println("您经过" + count + "次尝试猜对了");
System.out.println("正确的数字为:" + a);
} else if (m > a) {
System.out.println("您猜的结果过大,请继续尝试!");
} else {
System.out.println("您猜的结果过小,请继续尝试!");
}
} while (true);
}
}
网友评论