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

Java自定义对象ArrayList累加方法异常:始终返回0

问题分析与解决方案

嘿,我一下子就发现你代码里的问题啦!你之所以始终返回0,是因为累加的赋值方向搞反了——你现在是把总和变量加到临时的value里,根本没更新要返回的samletBeløb变量,它自然一直保持初始值0啦!

原代码的问题点

看你这段循环代码:

for (int i = 0; i < brugere.size(); i++) { 
    Bruger bruger = brugere.get(i); 
    int value = bruger.getBeløbGivet(); 
    value += samletBeløb; // 这里错了!只是修改了局部变量value,samletBeløb没变化
}

你每次拿到beløbGivet的值存在value里后,把samletBeløb加到value上,但这个操作完全和要返回的samletBeløb无关,它一直是初始的0,最后返回当然就是0了。

修正后的传统循环版本

把赋值方向反过来,把当前value加到samletBeløb上就行:

public static int samletBeløb(ArrayList<Bruger> brugere) { 
    int samletBeløb = 0; 
    for (int i = 0; i < brugere.size(); i++) { 
        Bruger bruger = brugere.get(i); 
        int value = bruger.getBeløbGivet(); 
        samletBeløb += value; // 正确:把当前值累加到总和变量里
    } 
    return samletBeløb; 
}

更简洁的foreach循环版本

既然你也想尝试foreach循环,给你写个更清爽的版本:

public static int samletBeløb(ArrayList<Bruger> brugere) { 
    int samletBeløb = 0; 
    for (Bruger bruger : brugere) { 
        samletBeløb += bruger.getBeløbGivet(); 
    } 
    return samletBeløb; 
}

这样一来,每次循环都会把当前Bruger对象的beløbGivet值累加到总和变量里,最后返回的就是正确的累加结果了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:08:48