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

Java中While循环求和未包含首个输入的问题求助

修复Java循环中第一个输入未计入总和的问题

嘿,我一眼就看到问题出在哪了——你这段代码里第一个输入的数字完全没被加到总和sum里!看你给的示例,15没被算进去,27+45+50刚好是122,和输出一致,但正确的总和应该是15+27+45+50=137对吧?

问题根源

  • 你在while循环外面先读取了第一个input,但这一步根本没有执行sum += input的操作;
  • 进入循环后,你才重新读取新的输入并加到总和里,这就直接漏掉了最开始输入的那个数字;
  • 还有个小隐患:如果用户第一次就输入了能被10整除的数,你的代码会直接跳出循环,连结果输出都没有,这显然不是你想要的。

修复后的代码

我调整了代码逻辑,把输入、求和、判断的流程统一到循环里,这样所有输入都会被正确统计:

import java.util.*;
class Scratch {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int input, sum = 0;
        while (true) {
            System.out.print("Enter a number: ");
            input = in.nextInt();
            sum += input; // 读取输入后立刻加到总和,所有输入都不会漏
            if (input % 10 == 0) {
                System.out.println("The total value is: " + sum);
                System.out.println("The last input was divisible by 10");
                break; // 符合条件就终止循环
            }
        }
    }
}

修改说明

  1. 用while(true)无限循环替代原来的条件判断,流程更清晰,也解决了首次输入就符合条件无输出的问题;
  2. 把输入读取和求和操作放到循环内,每读取一个数字就立即加到总和,确保所有输入都被计入;
  3. 移除了循环外重复的输入代码,避免冗余。

验证示例运行

现在再跑你给的测试用例,结果就正确了:

Enter a number: 15
Enter a number: 27
Enter a number: 45
Enter a number: 50
The total value is: 137
The last input was divisible by 10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:47:50