Java averageCustomerAge方法报错:缺少return语句及找不到符号求助
解决averageCustomerAge()方法的报错与逻辑问题
嘿,我来帮你搞定这个方法的问题!你的代码里有两个关键问题导致了报错和逻辑错误,咱们一步步理清楚:
问题1:变量作用域错误
你把sum和average都定义在for循环的大括号内部了,这意味着这两个变量只能在循环里访问,循环结束后外面的return average;根本找不到这个average变量——这就是你看到的“cannot find symbol”错误的根源。
问题2:逻辑计算错误
每次循环都把sum重置为0,这样你每次只加了当前一个客户的年龄,最后算出来的结果肯定不是所有客户年龄的平均值,完全不符合需求。
修正后的代码
public int averageCustomerAge() { // 将sum放在循环外初始化,避免每次循环被重置 int sum = 0; for (int i = 0; i < customerCount; i++) { sum += customers[i].age; } // 循环结束后统一计算平均值 int average = sum / customerCount; return average; }
额外提醒
这里用的是整数除法,如果客户年龄总和除以人数后有小数,结果会被直接截断(比如总和是100,人数是3,结果会是33而不是33.33)。如果需要更精确的结果,可以把sum改成double类型,最后再强制转换为int:
public int averageCustomerAge() { double sum = 0; for (int i = 0; i < customerCount; i++) { sum += customers[i].age; } return (int) (sum / customerCount); }
内容的提问来源于stack exchange,提问作者Eagerissac
相关产品推荐
相关产品推荐

