java.util.Random.nextInt(bound)生成[0, bound)的随机整数,bound必须为正整数;要得[0, max](含)需用nextInt(max+1),如nextInt(21)生成0~20。

java.util.Random.nextInt(bound) 方法直接生成 [0, bound) 范围内的随机整数,即包含 0、不包含 bound 的非负整数。
理解 bound 参数的含义
bound 必须是正整数(> 0),表示上界(排他)。例如:
-
nextInt(10)返回 0~9(含)之间的整数; -
nextInt(1)恒返回 0; -
nextInt(0)或负数会抛出IllegalArgumentException。
生成指定上限(含)的随机整数
若你需要的是 [0, max](含 max)的整数,需将 bound 设为 max + 1:
- 要生成 0~5(含):用
nextInt(6); - 要生成 0~100(含):用
nextInt(101); - 通用写法:
random.nextInt(max + 1)(前提是 max ≥ 0)。
常见错误与注意事项
避免以下误区:
- 误以为
nextInt(10)包含 10 —— 实际最大值是 9; - 直接传入负数或 0 —— 会立即抛异常;
- 混淆“上限”是否包含:明确需求是「含」还是「不含」,再决定是否 +1。
简单示例代码
生成 0 到 20(含)之间的随机整数:
Random r = new Random();int n = r.nextInt(21); // bound = 20 + 1
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











