You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现输入数字超出1-25范围时引导重新输入的方法问询

实现Java数字输入范围校验与循环输入功能

你需要给现有代码添加循环逻辑,让用户输入超出1-25范围时,自动回到输入环节重新输入,直到输入合法为止。以下是修改后的完整代码:

import java.util.Scanner;

public class FactorialCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long number;
        long factorial;

        do {
            System.out.println("Enter a number between 1 and 25");
            number = scanner.nextLong();

            // 校验输入范围
            if (number < 1) {
                System.out.println("Positive numbers only (must be ≥ 1)");
            } else if (number > 25) {
                System.out.println("Number too large, please enter ≤ 25");
            }
        } while (number < 1 || number > 25); // 不符合范围就重复循环

        // 计算并输出阶乘
        factorial = 1;
        if (number <= 1) {
            System.out.printf("The factorial of %d is equal to %d%n", number, factorial);
        } else {
            for (long mynumber = number; mynumber >= 1; mynumber--) {
                factorial *= mynumber;
            }
            System.out.printf("The factorial of %d is equal to %d%n", number, factorial);
        }

        scanner.close();
    }
}

关键修改说明

  • 使用do-while循环:先执行一次输入和校验,再判断是否需要重复,确保用户至少输入一次,不符合条件就重新提示
  • 优化错误提示信息:明确告知用户合法范围,让提示更清晰
  • 调整factorial初始化位置:移到循环之后,避免多次输入时保留之前的计算值,保证每次计算都是基于新输入的数字
  • 添加scanner.close():规范关闭输入流,避免资源泄漏

内容的提问来源于stack exchange,提问作者Lau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:05:21