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

如何在Java中输出数组内容并求和?现有代码优化求助

解决偶数输出与总和计算的问题

嘿,我来帮你搞定这个需求!你的现有代码已经能按固定长度分段输出偶数了,现在只需要加上总和计算的逻辑,再补全收尾处理,就能得到你想要的结果。

问题分析

你的代码目前只是把偶数按指定长度分段打印,但没有对这些数值做累加求和,而且循环结束后缓冲区里可能还剩有未打印的内容(虽然你的示例输出刚好没遗漏,但加上这个逻辑能保证代码的完整性)。

修改后的代码

// 注意:把类名改成NumberPrinter,避免和Java自带的StringBuffer类重名冲突
public class NumberPrinter {
    public static void main(String[] args) {
        countTo_N_Improved();
    }

    private final static int MAX_LENGTH = 30;
    private static String buffer = "";
    // 新增总和变量,用来累加所有输出的数值
    private static int sum = 0;

    private static void emit(String nextChunk) {
        if (buffer.length() + nextChunk.length() > MAX_LENGTH) {
            System.out.println(buffer);
            buffer = "";
        }
        buffer += nextChunk;
    }

    // 如果只需要计算到82的总和,把N改成82即可
    private static final int N = 100;
    private static void countTo_N_Improved() {
        for (int count = 2; count <= N; count = count + 2) {
            emit(" " + count);
            // 每次循环将当前数值加入总和
            sum += count;
        }
        // 循环结束后,打印缓冲区里剩下的内容(防止最后一段内容丢失)
        if (!buffer.isEmpty()) {
            System.out.println(buffer);
        }
        // 最后换行输出总和
        System.out.println("\n这些数组中数值的总和为" + sum);
    }
}

关键改动说明

  • 新增总和变量:添加private static int sum = 0;用来存储所有输出数值的累加结果。
  • 数值累加:在循环内部每次生成count时,执行sum += count;把当前偶数加入总和。
  • 收尾打印:循环结束后检查缓冲区是否为空,确保最后一段未达长度限制的内容也能被打印出来。
  • 输出总和:在所有偶数打印完成后,换行输出计算好的总和。
  • 类名优化:把原类名StringBuffer改为NumberPrinter,避免和Java标准库的java.lang.StringBuffer类重名,消除潜在的命名冲突。

结果验证

如果把N设为82,运行代码后会输出你期望的内容:

2 4 6 8 10 12 14 16 18 20 22
24 26 28 30 32 34 36 38 40 42
44 46 48 50 52 54 56 58 60 62
64 66 68 70 72 74 76 78 80 82

这些数组中数值的总和为1722

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:17:54