【发布时间】:2014-10-22 20:34:25
【问题描述】:
public static void main (String[] args) {
double sum = 0;
int count = 0;
double userEnterNumber = 0;
double min = 0;
double max = 0;
double average = 0;
System.out.println(" Input a number, type a non-numerical value to exit: ");
Scanner in = new Scanner(System.in);
userEnterNumber = in.nextDouble();
while ( in.hasNextDouble())
{
userEnterNumber = in.nextDouble();
if (userEnterNumber>0) {
sum = sum + userEnterNumber;
count ++;
average = sum/count;
if (userEnterNumber >=max){
max = userEnterNumber;
}
}
}
System.out.println(" Sum: "+sum);
System.out.println(" Count: "+count);
System.out.println(" Average: "+average);
System.out.println(" Minimun: "+min);
System.out.println(" Maximum: "+max);
}
我试图弄清楚我的程序发生了什么。每当我运行它时,它都会给我错误的总和和错误的计数。我该如何解决?我怎样才能在这里添加最小值?谢谢
【问题讨论】:
-
您正在跳过初始值。首先你进入 in.nextDouble(),然后你说 while (in.hasNextDouble()),再次进入 in.nextDouble() - 所以第一个永远不会被记录为总和的一部分。
-
您正在丢弃第一个
in.nextDouble(),因为您立即在循环中再次调用它。