练习——猜数字
需求
- 程序中预设一个目标数字(玩家不知道)
- 每次输入一个数字,与目标数字比较:
- 比目标大 → 输出”太大了”
- 比目标小 → 输出”太小了”
- 等于目标 → 输出”猜中了”,结束循环
- 输入
0可随时退出程序,避免死循环
示例代码
public static void main(String[] args) {
int num = 65; // 预设目标数字
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数字(输入0退出):");
int input = scan.nextInt();
while (input != num) {
if (input == 0) {
System.out.println("已退出游戏。");
break;
}
if (input > num) {
System.out.println("太大了");
} else {
System.out.println("太小了");
}
System.out.println("请继续输入(输入0退出):");
input = scan.nextInt();
}
if (input != 0) {
System.out.println("猜中了");
}
}Code language: JavaScript (javascript)
运行示例
请输入一个数字(输入0退出):
50
太小了
请继续输入(输入0退出):
70
太大了
请继续输入(输入0退出):
65
猜中了
逻辑拆解
| 步骤 | 说明 |
|---|---|
| 初始化 | 预设目标数字 num = 65 |
| 首次输入 | 循环外先读取一次输入 |
| 循环条件 | input != num 时持续循环 |
| 退出机制 | 输入 0 时 break 中断循环 |
| 比较逻辑 | input > num 提示太大,input < num 提示太小 |
| 循环内重新输入 | 每次提示后重新读取用户输入 |
| 结束判断 | 循环结束后若 input != 0,说明是猜中退出的 |
改进建议
可以用 Random 类随机生成目标数字,增加游戏趣味性:
import java.util.Random;
Random random = new Random();
int num = random.nextInt(100) + 1; // 生成 1~100 之间的随机数Code language: JavaScript (javascript)
注意:循环体内必须包含重新读取输入的语句(
scan.nextInt()),否则输入不变会导致死循环。
Previous: while 语句
Next: 改进猜数字练习——加入随机数