You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:17:16