Java for循环中缺少return语句-return int表示存储中所有客户对象的平均年龄
我正在尝试创建一个名为averageCustomerAge()的方法,该方法应返回 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
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已经接受了答案。