当前位置:首页 > Java

java如何猜年龄

2026-03-21 11:44:16Java

实现猜年龄游戏的Java代码

以下是一个简单的Java程序,通过提问用户一系列问题来猜测用户的年龄。该程序使用二分查找算法逐步缩小年龄范围。

import java.util.Scanner;

public class AgeGuesser {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int low = 1;
        int high = 100;
        int guess;
        String response;

        System.out.println("思考一个年龄在1到100之间,我会尝试猜出来。");

        while (low <= high) {
            guess = (low + high) / 2;
            System.out.print("你的年龄是" + guess + "岁吗?(y/n) ");
            response = scanner.nextLine().toLowerCase();

            if (response.equals("y")) {
                System.out.println("太好了!我猜对了!");
                return;
            }

            System.out.print("你的年龄比" + guess + "岁大吗?(y/n) ");
            response = scanner.nextLine().toLowerCase();

            if (response.equals("y")) {
                low = guess + 1;
            } else {
                high = guess - 1;
            }
        }

        System.out.println("你的年龄是" + low + "岁!");
        scanner.close();
    }
}

算法原理

该程序使用二分查找算法来猜测年龄。它首先将年龄范围设为1到100岁,然后不断将范围缩小一半。

每次迭代中,程序计算当前范围的中间值作为猜测值。根据用户的反馈,调整搜索范围的上限或下限。如果用户年龄大于猜测值,则提高下限;否则降低上限。

java如何猜年龄

程序优化方向

增加错误处理机制,防止用户输入无效字符。可以添加循环直到用户输入有效响应。

while (true) {
    System.out.print("你的年龄比" + guess + "岁大吗?(y/n) ");
    response = scanner.nextLine().toLowerCase();
    if (response.equals("y") || response.equals("n")) {
        break;
    }
    System.out.println("请输入y或n!");
}

添加猜测次数限制,防止无限循环。可以在while循环条件中加入计数器。

java如何猜年龄

int attempts = 0;
while (low <= high && attempts < 10) {
    attempts++;
    // 原有代码
}

扩展功能

可以记录猜测历史,在最后显示所有猜测过程。创建数组存储每次猜测的值。

List<Integer> guessHistory = new ArrayList<>();
// 在猜测后添加
guessHistory.add(guess);

增加难度级别,让用户选择年龄范围。在程序开始时询问用户最大年龄。

System.out.print("请输入最大年龄限制: ");
high = scanner.nextInt();
scanner.nextLine(); // 消耗换行符

标签: 年龄java
分享给朋友:

相关文章

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何解决高并发

java如何解决高并发

Java 高并发解决方案 使用线程池优化资源管理 线程池(如 ThreadPoolExecutor)能避免频繁创建和销毁线程的开销。通过核心线程数、最大线程数和任务队列的合理配置,可以平衡系统负载。例…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…

如何阅读java源码

如何阅读java源码

阅读Java源码的方法 选择合适的源码项目 初学者建议从JDK核心类库(如java.lang、java.util)或知名开源项目(如Spring、Guava)入手。选择文档完善、社区活跃的项目能降低理…