Java分数等级计算方法失效排查:为何无法返回正确char等级值
分数等级计算问题
问题要求
完成一个函数,计算传入的三个分数的平均值,并返回对应等级的字母值,等级规则如下:
Numerical Score Letter Grade 90 ≤ score ≤ 100 'A' 80 ≤ score < 90 'B' 70 ≤ score < 80 'C' 60 ≤ score < 70 'D' 0 ≤ score < 60 'F'
测试值均在0-100之间,无需校验边界外数值。
问题描述
我编写了如下Java代码,但无法返回正确的char等级值:
public class GrassHopper { public static char getGrade(int s1, int s2, int s3) { int sum = s1 + s2 + s3; char answer = '\0'; if(sum<=100 && sum>=90) { answer='A'; } else if(sum<90 && sum>=80) { answer='B'; } else if(sum<80 && sum>=70) { answer='C'; } else if(sum<70 && sum>=60) { answer='D'; } else if(sum>=0 && sum<60) { answer='F'; } return answer; } }
检查了if语句未发现问题,虽知晓有更优写法,但想请教该代码失效的原因?
排查与解决
- 编辑:我意识到错误了,没有计算三个值的平均值并赋值给sum,现在尝试修改。
- 编辑2:将代码中的sum定义改为:
double sum = (s1 + s2 + s3)/3;
替换后代码正常运行,感谢大家。
内容的提问来源于stack exchange,提问作者user21411168
相关产品推荐
相关产品推荐

