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

Java新手排查0-10000随机数各位求和代码不输出和问题

代码问题排查与修复

现有代码的错误点

  • 累加变量sum定义在while循环内部,每次循环都会被重新初始化为0,无法完成数位和的累加计算
  • System.out.println(sum)放在while循环内部,每次循环都会输出当前的sum值,不会只输出最终总和
  • 原代码直接修改存储随机数的num变量,若后续需要复用该随机数会受影响,建议单独用临时变量处理数位拆分
  • 类名test不符合Java编码规范,类名首字母需要大写

修复后的完整代码

import java.util.Random;

public class Test {
    public static void main(String[] args) {
        Random random1 = new Random();
        int num = random1.nextInt(10000);
        System.out.println("生成的随机数为:" + num);
        
        int sum = 0;
        // 用临时变量处理数位拆分,不修改原随机数
        int temp = num;
        while(temp > 0) {
            int lastDigit = temp % 10;
            sum += lastDigit;
            temp = temp / 10;
        }
        System.out.println("数位和为:" + sum);
    }
}

修正说明

  • 将sum变量移到循环外初始化,保证累加逻辑正常,即使随机数生成0时,sum初始值为0也能正常输出正确结果
  • 打印sum的语句移到循环结束后,仅输出最终的数位和
  • 新增临时变量temp用来做数位拆分,保留原随机数num的值方便后续复用
  • 修正类名符合Java编码规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:54:04