JAVA 生成随机数两种方式

 博客网站地址:

http://xiaohe-blog.top

1、Math.random()

Math.random()生成的是0.0~1.0的小数(不包括1.0哦),如果你想要的正好就是小数,那么直接乘以一个值就好了

例如:生成 [0.0,100.0) 的double数

JAVA 生成随机数两种方式_第1张图片

但是大部分情况下,都是生成一个整数,所以这时候我们就要用到类型转换,将生成的double转换成int值。

JAVA 生成随机数两种方式_第2张图片

注意是:

int a = (int)(Math.random() * 100);
这种方式是将生成的0~1先乘以100,再将这个数变成int

而不是:

int a = (int)Math.random() * 100;
这种方式是先将0~1.0转换成int类型,
可是0~1.0转换成int之后是0,再乘以100也还是0啊

对比:

JAVA 生成随机数两种方式_第3张图片

JAVA 生成随机数两种方式_第4张图片

获取指定范围的随机数:

(int)(Math.random()*(大-小+1) ) + 小

如:生成 36 ~ 79 之间的随机数

JAVA 生成随机数两种方式_第5张图片

2、Random类

(Math类是数学类,他还要完成很多数学操作。可Random类专注于生成各种随机数,你说谁牛逼?)

JAVA 生成随机数两种方式_第6张图片

如图,new一个Random的对象r,想生成随机数的时候调用r的方法就行了。

int a = r.nextInt(bound);
bound指的是生成随机数的范围:[0,bount)

生成指定范围的随机数:

r.nextInt(大-小+1)+小;

如:生成 36 ~ 79之间的随机数

r.nextInt(79-36+1)+36;

JAVA 生成随机数两种方式_第7张图片

可以看到,这个类是没有直接生成字符的方法的。这时候就需要生一个整数,再强转为char 

JAVA 生成随机数两种方式_第8张图片

你可能感兴趣的:(javase,java)