Files
gc-plan/week1/day03/GuessNumber.java
2026-04-29 23:45:17 +08:00

64 lines
2.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package day03;
/**
* 第 3 天:猜数字游戏 —— while 循环 + if 判断
* 目标:掌握 while 循环和条件判断的配合使用
*
* 游戏规则:程序随机生成 1-100 的数字,玩家最多猜 7 次,
* 每次猜测后提示"大了"或"小了",猜中或次数用完则结束。
*/
import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
// 生成 1~100 的随机整数
int target = random.nextInt(100) + 1;
int maxAttempts = 7; // 最多猜 7 次
int attempts = 0; // 已猜次数
boolean guessed = false;
System.out.println("========== 猜数字游戏 ==========");
System.out.println("我已想好一个 1~100 之间的数字,你有 " + maxAttempts + " 次机会!");
// while 循环:当还有剩余次数且未猜中时继续
while (attempts < maxAttempts && !guessed) {
attempts++;
System.out.print("\n第 " + attempts + " 次猜测,请输入数字: ");
int guess = scanner.nextInt();
if (guess < 1 || guess > 100) {
System.out.println("请输入 1~100 之间的数字!");
attempts--; // 不浪费这次机会
continue; // 跳过本次循环剩余代码
}
if (guess == target) {
System.out.println("\n🎉 恭喜你猜对了!答案就是 " + target + "");
System.out.println("你一共猜了 " + attempts + " 次。");
guessed = true;
} else if (guess > target) {
System.out.println("太大了!");
} else {
System.out.println("太小了!");
}
// 提示剩余次数
if (!guessed && attempts < maxAttempts) {
System.out.println("还有 " + (maxAttempts - attempts) + " 次机会。");
}
}
// 没猜中的情况
if (!guessed) {
System.out.println("\n😢 很遗憾,次数用完了!正确答案是 " + target + "");
}
scanner.close();
}
}