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

