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

Java求平均程序优化:初始输入负数时不输出总和与平均值

Java求平均程序输入初始负数的输出修正方案

你编写的SumAverage2程序在输入有效正整数后能正常计算平均值,但当用户初始就输入负数(无有效数据)时,会错误输出sum=0和average=NaN,不符合仅输出计数为0的要求。以下是修改后的代码及说明:

import java.util.Scanner;

public class SumAverage2 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("average program");
        System.out.println("Enter multiple integers greater than or equal to 0.");
        System.out.println("Enter a negative integer to finish the entry.");
        
        boolean end = false;
        int n;
        int sum = 0;
        int count = 0;
        
        while(!end) {
            n = input.nextInt();
            if (n>=0) {
                sum = sum + n;
                count++;
            } else {
                end = true;
            }
        }
        
        // 固定输出输入的有效数字数量
        System.out.println("Number of integers greater than 0 entered = " + count);
        
        // 仅当存在有效输入时,才计算并输出总和与平均值
        if (count > 0) {
            double average = (double) sum / count;
            System.out.println("sum of integers = " + sum);
            System.out.printf("average = %.2f", average);
        }
        
        input.close();
    }

}

修改说明

  • 调整输出逻辑:先固定输出有效数字的计数行,确保无论是否有有效输入,这行内容都会正常显示
  • 添加count > 0的条件判断:只有当用户输入过至少一个非负整数时,才计算并输出总和与平均值,避免了无有效输入时除以0导致的NaN问题,同时也不会输出无意义的sum=0
  • 当用户初始输入负数时,程序只会输出Number of integers greater than 0 entered = 0,符合预期要求

内容的提问来源于stack exchange,提问作者Tae-Kyu Lim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:59:59