You need to enable JavaScript to run this app. Java如何实现循环读取整数输入直至无NumberFormatException异常
优惠活动
大模型
产品
解决方案
定价
更多

Java如何实现循环读取整数输入直至无NumberFormatException异常

整数输入重试功能实现方法

核心逻辑

不需要在异常捕获块里手动实现流程跳转,只需要把输入读取、格式校验的整个try-catch块放到持续运行的循环结构中,当捕获到格式异常、打印错误提示后,循环会自动回到输入读取环节重新等待用户输入,直到解析整数成功后再跳出循环即可。

可直接参考的代码实现

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num;

// 循环持续运行直到拿到合法输入
while (true) {
    try {
        System.out.println("请输入整数:");
        num = Integer.parseInt(br.readLine());
        // 解析无异常触发,跳出循环,结束输入流程
        break;
    } catch (NumberFormatException e) {
        System.out.println(e);
        System.out.println("输入不是合法整数,请重新输入");
    } catch (IOException e) {
        System.out.println("输入读取失败,请重新输入");
    }
}
// 循环结束后即可使用num变量执行后续业务逻辑
System.out.println("成功读取的整数为:" + num);

常见注意事项

  • 不能把try-catch结构放在循环外部,否则捕获一次异常后流程就会跳出输入环节,无法实现重试
  • 不需要在catch块里写额外的跳回逻辑,只要try块的代码在循环体内,catch块执行完毕后循环会自动从头开始执行,回到输入读取步骤
  • 不要遗漏处理br.readLine()本身可能抛出的IO异常,避免程序意外崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 23:15:03