java Random概述及练习
Random类,是生成随机数的方法类。不过,Random类使用的是随机算法是伪随机的,也就是有规则的随机。这里的随机算法通过一个在起源数字的基础上进行一定的变换来完成的。算法中的起源数字称为种子数。
该算法决定了种子数相同的Random对象,在相同次数生成的随机数是完全相同的。因此,若要用Random类生成多个随机数时,应该特别注意种子数的区分。
API文档中提供的Random类两个构造方法。
在使用Random类时与Scanner类相同
1.导包:导入java.util下的路径。
2.创建:Random r = new Random();
3.使用:获取一个随机的数字时:(范围是int的所有范围,有正负两种)(int num= r.nextInt())
获取一个随机的int的数字,有参数时(参数代表了范围,是左闭右开的区间):int num = r.nextInt(10);//实际上就是0~9之间的数字。
代码示例:
package Day02;
import java.util.Random;
public class DemoRandom {
public static void main(String[] args) {
//随机生成一个数
Random r = new Random();
int num = r.nextInt();
System.out.println("随机数为:" + num);
}
package Day02;
import java.util.Random;
public class DemoRandom {
public static void main(String[] args) {
//随机生成指定范围的一个数
Random r = new Random();
for (int i = 0; i < 100; i++) {
int sum = r.nextInt(10);
System.out.println(sum);
}
}
}
若要随机产生的随机数是字符,需要利用字符之间的ASCII码差值进行转换。
小练习:
1生成1-n之间的随机数
package Day02;
import java.util.Random;
public class DemoRandom01 {
public static void main(String[] args) {
//生成1-n之间的随机数
Random r = new Random();
int n = 10;
for (int i = 0; i < 100; i++) {
int sum = r.nextInt(n)+1;//本来是[0,n),但整体+1后变成了[1,n)
System.out.println(sum);
}
}
}
猜数字游戏
package Day02;
import java.util.Random;
import java.util.Scanner;
public class DemoRandomGame {
public static void main(String[] args) {
Random r = new Random();//调用Random类使用
int randomNum = r.nextInt(100)+1;//接收一个随机数
Scanner sc = new Scanner(System.in);//从键盘接收一个数字
while (true){
System.out.println("请输入你猜测的数字: ");
int guessNum = sc.nextInt();//接收的数放入guessNum中
if(guessNum>randomNum){
System.out.println("太大了,请重试");
}else if (guessNum<randomNum){
System.out.println("太小了,请重试");
}else{
System.out.println("恭喜你,猜对了");
break;
}
}
System.out.println("游戏结束");
}
}