Java for循环中缺少return语句-return int表示存储中所有客户对象的平均年龄

Java for循环中缺少return语句-return int表示存储中所有客户对象的平均年龄,java,for-loop,return,Java,For Loop,Return,我正在尝试创建一个名为averageCustomerAge()的方法,该方法应返回 int表示商店中所有客户对象的平均年龄。问题是我遇到了一个错误,说我缺少一个返回语句,但是当我尝试添加一个返回语句时,我得到了另一个错误,说“找不到符号”。有人知道如何解决这个问题吗 public int averageCustomerAge() { for (int i = 0; i < customerCount; i++) { int sum = 0; sum

我正在尝试创建一个名为averageCustomerAge()的方法,该方法应返回 int表示商店中所有客户对象的平均年龄。问题是我遇到了一个错误,说我缺少一个返回语句,但是当我尝试添加一个返回语句时,我得到了另一个错误,说“找不到符号”。有人知道如何解决这个问题吗

public int averageCustomerAge() {
    for (int i = 0; i < customerCount; i++) {
        int sum = 0;
        sum += customers[i].age;
        int average = (sum / customerCount);
    }
    return average;
}
}
public int averageCustomerAge(){
对于(int i=0;i
应在
for
循环的
外部定义
平均值
变量。而且,在求和之后,您应该只计算一次平均值。但是,您可以将方法简化为以下内容:

public int averageCustomerAge() {
    if (customerCount == 0) return 0;

    int sum = 0;
    for (int i=0; i < customerCount; i++) {
        sum += customers[i].age;
    }

    int average = sum / customerCount;

    return average;
}
public int averageCustomerAge(){
如果(customerCount==0)返回0;
整数和=0;
对于(int i=0;i

注意,如果客户计数为零,我在方法的最开始返回零。如果我们不这样做,那么对于零客户计数,平均值将是一个除以零的值,这可能是您不想要的。

当您在
for
中创建变量
average
时,是否真的可以在块外访问该变量?而且,这甚至不是计算平均值的方法。您需要首先对所有值求和,然后将其除以
customerCount
,而不是在每个迭代步骤中。您也可以阅读关于变量范围的内容:作为一个旁注:您可能不应该使用int来计算AVG值,您将丢失值的小数部分。考虑使用浮点而不是int。@好的点,但是我将把它作为注释,因为OP已经接受了答案。