Java 中的 Random
向 Java 要一个小范围内的随机数并打印它。在 Dice.java 中 import java.util.Random;,保留 public 类 Dice,创建 Random rng = new Random(42);,保存 int roll = rng.nextInt(6) + 1;,并打印 roll。用 javac Dice.java 编译,运行 java Dice。种子为 42 时屏幕应显示 3。第二个演示从同一生成器打印两次掷点,屏幕依次显示 3、4。把 Summary 留给下一页——本课是用固定种子练习随机数,不是课程总结。
构建一次带种子的掷点
dates 页冻结了一个日历日。本页要一次掷点。打开 Dice.java。保留 public 类名 Dice。若残留的 Stamp 日期演示遮住 Random 故事,就删掉它们,还有 Yard 格式化求和、命名文件以及任何键盘 Scanner。程序不应等待输入。
在文件顶部添加 import:
import java.util.Random;
在 Dice.main 内用种子创建生成器,让这个教学文件每次运行都重复同一个首值:
Random rng = new Random(42);
int roll = rng.nextInt(6) + 1;
System.out.println(roll);
仅 nextInt(6) 会返回 0 到 5。加上 1 把范围移到 1 到 6,像六面骰。种子 42 不是魔法——只为本课锁住序列,让测验与屏幕一致。你读这一页时不是在每次猜新数字。
import java.util.Random;
public class Dice {
public static void main(String[] args) {
Random rng = new Random(42);
int roll = rng.nextInt(6) + 1;
System.out.println(roll);
}
}
在存放 Dice.java 的文件夹里运行 javac Dice.java。括号、花括号和分号都匹配时,javac 不会输出自己的一行。然后运行 java Dice——不要 java Dice.java。运行命令不要带 .java 后缀。文件里只保留一个 public 类,名称与 Dice 一致。
屏幕显示 3。走一遍运行流程。Java 从 Dice.main 开始。构造器保存种子 42。第一次 nextInt(6) 从 0..5 取值,然后 + 1 变成 1..6。该种子下第一次掷点成为 3。打印写出 3。
看着屏幕时说出入门规则:导入 Random,需要可重复演示时用种子构建,要像骰子范围就调用 nextInt(6) + 1,打印掷点。不要在本页编造 Summary 章节。Summary 等下一课。若要 1 到 6 就不要去掉 + 1。
若仍看到残留 Stamp 日期文件打印的 2026-03-15,请切换到 Random 教学文件并再次运行 java Dice。若 javac 报找不到 Random,检查 Dice.java 顶部的 import 行。
同一生成器的第二次掷点
一次掷点证明范围。在同一 Random 对象上第二次调用会继续序列。保留同一种子构造器。打印两次:
System.out.println(rng.nextInt(6) + 1);
System.out.println(rng.nextInt(6) + 1);
种子 42 时第一次打印仍是 3,第二次是 4。两值都在 1..6 内。生成器记得进度;若要序列中的下一个值,不要在两行之间再建 new Random(42)。
import java.util.Random;
public class Dice {
public static void main(String[] args) {
Random rng = new Random(42);
System.out.println(rng.nextInt(6) + 1);
System.out.println(rng.nextInt(6) + 1);
}
}
用 javac Dice.java 编译并再次运行 java Dice。屏幕显示 3,然后 4。走一遍运行。同一种子启动序列。第一个 nextInt(6) + 1 打印 3。第二次调用前进并打印 4。不等待键盘,不保存日历日。
把两个演示当作两种教学形状。先证明一次带种子的掷点,再证明连续两次。两种形状共享同一 import 与种子;第二种只多一次 nextInt 调用。
若每次打印前都重建 new Random(42),每行会重新开始序列,你可能两次看到 3。那是另一种习惯。本页两次掷点演示保持一个生成器,让第二行前进。
Random 不是日历也不是 Summary
Dates 保存可打印、可拆分的固定日。Random 在范围内抽取随机数。Summary 在下一页收束课程路径。今天不要把这三件事混在一个初学者文件里。
无种子时每次运行第一次掷点可以不同,日后做游戏没问题。本课用种子 42 让教学屏与测验共用一个答案。无论如何你都学同样的 nextInt 调用。
缺少 import 时,javac 在屏幕出现任何行之前就失败。忘记 + 1 可能出现 0,那不是标准骰面。保留 import 与偏移,运行 java Dice 直到单次演示显示 3 或两次演示显示 3 然后 4。
若附近仍有日期演示,当作历史保留。本课请运行 Random 教学文件,让屏幕显示范围内随机数,而不是 2026-03-15。若 javac 抱怨重复的 public 类,只保留 Dice 为 public。
范围、种子与 + 1 习惯
nextInt(6) 表示六种起始值:0、1、2、3、4、5。表达式 nextInt(6) + 1 把它们映射到 1、2、3、4、5、6。看着代码大声说一遍这个映射。边界参数是起始值个数,不是偏移后的最大面。
种子锁定你在本教学文件中先看到哪条面值路径。改种子就改序列;不设种子则运行之间序列会变。本页评分练习请保持 42,让第一面仍是 3。
不要把 Random 当作 LocalDate 的替代。不要把掷点当作格式化缩进规则。前面每页各守其责,本页只管随机数。
Summary 之前
你可以导入 Random,创建 new Random(42),掷 nextInt(6) + 1,单次运行看到 3,两次演示看到 3 然后 4。对所保留的演示编译 Dice.java 并运行 java Dice。范围仍是 1..6;种子让教学序列稳定。下一页是 Summary,回顾 Java 路径。
把带种子的骰子演示当作清晰的随机数一对。练习 Random 时别把日期文件混进本页。Summary 文件等到那一课再用。这三条习惯是继续前进前的检查点。单次屏显 3 或双次 3 然后 4 时,Random 已完成本课任务,你可以进入下一 topic Summary。
最后再扫一遍文件夹:一个 public Dice,import 在, new Random(42), nextInt(6) + 1,不等待键盘,不强行塞日历类型。在你打开的演示上再运行一次 javac Dice.java 和 java Dice。若屏幕仍是 3 或 3 然后 4,Random 形状稳固,课程可在下一页进入 Summary。每次阅读保持一条清晰的随机习惯,让每次通读教同一张图。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部