[Java · 铢积寸累] 基础函数 — 生成随机数 - Math.random() 详解
🌟 想系统化学习 Java 编程?看看这个:[编程基础] Java · 学习手册
0x01:Math.random() — 导入
在写程序时,我们经常会有生成随机数的需求,Java 中的 Math 类就提供了生成随机数的这么一个方法:
如上,从 Java API 文档可知,random()
方法将会返回一个 [0.0, 1.0)
之间的浮点数(注意 1.0 是取不到的)。
0x02:Math.random() — 的使用
0x0201:random() 生成 [0, 1) 之间的小数
先来一个简单的使用 random() 方法生成 [0, 1)
之间的整数:
import java.lang.Math;
public class TestVar {public static void main(String[] args) {System.out.println(Math.random());}
}
0x0202:random() 生成 [0, 100) 之间的小数
继续,提升一点难度,使用 random()
生成 [0, 100)
之间的小数,是不是就是在 random() 原本的基础上乘以 100 就可以啦:
import java.lang.Math;
public class TestVar {public static void main(String[] args) {System.out.println(Math.random() * 100);}
}
0x0203:random() 生成 [0, 100] 之间的整数
继续提高难度,我们要生成 [0, 100]
之间的整数,整数我们知道,只要使用 (int)
强制转换就行了,可是如何包含 100 呢?推导一下:
-
random() 默认范围:
[0.0, 1.0)
-
乘以 101 后的默认范围:
[0.0, 101.0)
-
我再取一个整数
[0, 100]
来看看试验结果(笔者写了个死循环,让它不随到 100 就不许停):
import java.lang.Math;
public class TestVar {public static void main(String[] args) {int num;while (true) {num = (int) (Math.random() * 101);if (num == 100) { // 咱就是验证一下能不能取到 100break;}}System.out.println(num);}
}