本文纲要
- Random 基本使用
什么是 Random
使用步骤
生成指定范围的随机数 - 猜数字游戏
需求分析
实现流程
代码实现
细节补充:无限循环与 break
Random 基本使用
1 ) 什么是 Random
Random 是 Java 内置的一个工具类,位于 java.util 包下,专门用来生成随机数。
比如我们要做一个随机点名器,或者需要生成一个随机密码,都可以通过 Random 来实现。
2 ) 使用步骤
使用 Random 和之前学过的 Scanner 非常相似,分为三步:
-
导包
在类定义的上面写:import java.util.Random; -
创建对象
Random r = new Random();
其中 r 是变量名,可以自定义,其他部分固定不变。
- 获取随机数
int number = r.nextInt(10); // 范围:[0,10) 包含0,不包含10
number 是变量名,可以改变;10 是范围上限,可改;其他部分固定。
3 ) 生成指定范围的随机数
r.nextInt(n) 会生成 [0, n) 左闭右开区间的随机整数。
如果我们需要 1~10 之间的随机数(包含1和10),不能直接写 nextInt(11),因为那会生成 0~10。
正确做法:生成 0~9,再加 1,即:
int num = r.nextInt(10) + 1; // 范围 [1, 10]
代码示例(修正注释乱码后):
import java.util.Random;
public class Demo1Random {
public static void main(String[] args) {
// 创建 Random 对象
Random r = new Random();
// 循环10次,生成1~10之间的随机数
for (int i = 1; i <= 10; i++) {
int num = r.nextInt(10) + 1;
System.out.println(num);
}
}
}
猜数字游戏
1 ) 需求分析
程序自动生成一个 1~100 之间的整数,用户通过键盘输入猜测数字,程序根据猜测结果给予提示:
- 猜大了 → 提示“猜大了”
- 猜小了 → 提示“猜小了”
- 猜中了 → 提示“恭喜,猜中了”并结束游戏
因为无法预知用户几次能猜对,需要使用 死循环 反复进行猜测,猜对后通过 break 跳出。
2 ) 实现流程
3 ) 代码实现
import java.util.Scanner;
import java.util.Random;
public class Test {
public static void main(String[] args) {
// 1. 准备 Random 和 Scanner 对象
Random r = new Random();
Scanner sc = new Scanner(System.in);
// 2. 生成要猜的随机数 (1~100)
int randomNum = r.nextInt(100) + 1;
// 3. 使用死循环让用户反复猜测
while (true) {
// 提示输入
System.out.println("请输入您猜的数据:");
int num = sc.nextInt();
// 4. 比较并给出提示
if (num > randomNum) {
System.out.println("猜大了");
} else if (num < randomNum) {
System.out.println("猜小了");
} else {
System.out.println("恭喜,猜中了");
break; // 猜对,跳出循环
}
}
// 游戏结束后的提示
System.out.println("感谢您的使用");
}
}
细节补充:无限循环与 break
当 while(true) 循环内部 没有退出条件 时,循环下面的代码将永远无法执行,编译器会报错:“无法访问的语句”
本例中我们添加了 break,当猜中后执行 break,循环结束,后面的 System.out.println(“感谢您的使用”) 就可以被执行
因此,无限循环下面可以写代码,但前提是循环内部存在能让程序跳出循环的出口(如 break、return 等)
小结
通过这两个例子,我们掌握了 Random 类的基本用法,以及如何结合 Scanner 和循环、分支语句完成一个简单的猜数字游戏。
这些是 Java 基础中非常经典且实用的练习,建议亲手敲一遍,加深理解。

550

被折叠的 条评论
为什么被折叠?



