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

Java整数求和程序打印异常:输入值显示为0而非原整数

问题解决:计算整数各位和时原数字显示为0的修复

问题出在你计算各位数字和的过程中,直接修改了存储用户输入的userNumber变量。循环里每次执行userNumber = userNumber / 10,直到userNumber变成0才会退出循环,最后打印的时候自然输出的是0,而不是用户最初输入的数字。

修复方案很简单,只需要保存原始输入的数字,别让计算过程修改它:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
     
    System.out.print("Enter a number: ");

    // 循环直到输入整数
    while (!scanner.hasNextInt()) 
    {        
        scanner.next(); // 丢弃非整数输入
        System.out.print("Please enter digits only: ");
    }

    // 读取用户输入并保存原始值
    int originalNumber = scanner.nextInt();
    int userNumber = originalNumber; // 用副本做计算
    int sumofUsernumber = 0;
    
    while (userNumber > 0) {
        sumofUsernumber += userNumber % 10;
        userNumber /= 10;
    }
    // 打印时使用原始值
    System.out.println("The combined value of " + originalNumber + " is " + sumofUsernumber);
}

关键修改点:

  • 新增originalNumber变量存储用户输入的原始整数,计算时用userNumber这个副本操作
  • 打印语句中替换为originalNumber,确保输出的是用户最初输入的数字
  • 顺便修复了原代码最后一行缺少分号的语法问题

这样输入101时,就会正确输出The combined value of 101 is 2了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:31:09