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

Java实现连续输入数字求和直至输入0的问题求助

问题分析与修复方案

嘿,我来帮你梳理下这段代码里缺少的关键内容,以及可以优化的点:

  • 缺少累加求和的变量:你现在的代码只是输出当前输入的数字,并没有把每次输入的数值累加起来。需要在循环外定义一个用于存储总和的变量,初始值设为0,每次输入非0数字时就把它加到总和里。
  • Scanner对象重复实例化:你在while循环内部每次都创建新的Scanner对象,这既浪费内存,还可能引发输入相关的异常。应该把Scanner的创建移到循环外面,整个程序只用一个实例就够了。

下面是修改后的完整代码:

import java.util.Scanner;
public class Task3 {
    public static void main(String[] args) {
        // 只创建一次Scanner对象
        Scanner in = new Scanner(System.in);
        // 定义累加变量,初始值为0
        int sum = 0;
        while (true) {
            System.out.println("Enter a number");
            int number = in.nextInt();
            if (number == 0) {
                System.out.println("Okay thanks!");
                // 关闭Scanner释放资源
                in.close();
                break;
            } else {
                sum += number;
                System.out.println("The current answer is :" + sum);
            }
        }
    }
}

简单说明下修改点:

  1. 把Scanner in = new Scanner(System.in);移到了循环外部,避免重复创建对象;
  2. 添加了int sum = 0;作为累加容器,每次输入非0数字时执行sum += number;完成求和;
  3. 退出循环前调用in.close();关闭Scanner,养成良好的资源释放习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 16:52:39