排除Java中的值

我对Java程序有些困惑.
用户可以输入所需数量的值,然后键入“ 999”以获取他们输入的所有值的总和和平均值.

除了输入“ 999”外,所有其他工作都有效.
输入时确实会显示总和和平均值,但总和和平均值计算中还会包括“ 999”值.

我很好奇是否有办法从计算中排除此特定值,而仅使用它退出循环并显示总和和平均输出.

到目前为止,这是我的代码:

import java.util.Scanner;
public class SumAvg {
static Scanner reader = new Scanner(System.in);

public static void main(String[] args) {

    int sum = 0, newNumber = 0, amount = 0;
    double average;

    System.out.println("Enter a number: ");

    do {
        amount++;
        newNumber = reader.nextInt();
        sum = sum + newNumber;
    } while (newNumber != 999);

    average = (sum / amount) * 1.0;
    System.out.printf("Sum: %s %nAverage: %.2f",sum,average);
    }
}

解决方法:

输入有效数字前,请勿增加金额.除非您有一个有效的数字,否则不要求和.除法前强制转换为两倍,否则为整数除法.

int sum = 0, amount = 0, newNumber;
System.out.println("Enter numbers. Enter 999 to stop:");
while ((newNumber = reader.nextInt()) != 999) {
    sum += newNumber;
    amount++;
}
double average = (double)sum / amount;

NumberFormat numfmt = NumberFormat.getInstance();
numfmt.setMinimumFractionDigits(0);
numfmt.setMaximumFractionDigits(9);
numfmt.setGroupingUsed(true);
System.out.println("Sum: " + numfmt.format(sum));
System.out.println("Average: " + numfmt.format(average));
上一篇:深度学习:mAP(mean average precision)


下一篇:求自定类型元素的平均