当前位置:首页 > 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

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorld…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件 try…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

react如何与java配合

react如何与java配合

React 与 Java 配合的常见方式 React 作为前端框架,通常与 Java 后端通过 RESTful API 或 GraphQL 进行交互。以下是几种常见的配合方式: RESTful AP…