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

Java数字反转程序出现无限while循环,inputNumberUser无法归零问题咨询

问题原因分析

核心原因

你原始代码的无限循环问题出在 inputNumberUser = inputNumberUser - printValue 这行逻辑的设计错误:

  • printValue 是你通过 inputNumberUser % 10 取到的数字的个位数余数,减去这个余数只能把当前数字的最后一位变成0,并不会缩减数字的位数。
  • 举个实际运行的例子说明,假设你输入的数字是123:
    1. 第一次循环:inputNumberUser = 123,取余得3,减去3后变为120,不等于0,继续循环,打印3
    2. 第二次循环:inputNumberUser = 120,取余得0,减去0后仍然是120,不等于0,继续循环,打印0
    3. 后续所有循环的取余结果永远是0,inputNumberUser 永远停在120不会变化,永远达不到循环退出条件inputNumberUser != 0的相反状态,自然就进入无限循环,同时会不断打印0刷屏。

两种修复方案的逻辑说明

  • 第一种方案把减法替换为 inputNumberUser = inputNumberUser / 10:因为Java中int类型的除法是截断整数除法,相当于直接抹掉数字的最后一位,123/10得12,12/10得1,1/10得0,自然就能正常退出循环。
  • 第二种方案的逻辑是先把反转后的数字拼接存储在变量里,最后统一输出,避免了循环中逐位打印的操作,同时也用除以10的逻辑缩减位数,同样可以正常退出循环。

内容的提问来源于stack exchange,提问作者Senior-Moe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:45:03