如何在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
相关产品推荐
相关产品推荐

