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
相关产品推荐
相关产品推荐

