【问题标题】:How to return a single character as a string type?如何将单个字符作为字符串类型返回?
【发布时间】:2019-02-27 18:02:32
【问题描述】:

所以我正在做一个家庭作业项目,有一点我需要将字母等级放入字符串类型的双精度数组中。所以我写了一段代码来获取一个双精度类型的输入“分数”并返回一个字符串类型的字母等级。但是 Eclipse 告诉我我有一个错误,需要返回类型字符串。我不明白我的问题是什么。

public static String getLetterGrade(double score) {
    if (90 >= score && score <= 100)
        return "A";

    if (80 >= score && score < 90)
        return "B";

    if (70 >= score && score < 80)
        return "C";

    if (60 >= score && score < 70)
        return "D";

    if (score < 60)
        return "F";
} //end of getLetterGrade()

【问题讨论】:

  • 您需要 else 部分。为此,您必须在方法结束时返回默认值
  • 如果没有匹配项,您需要返回一些内容。
  • 谢谢,问题解决了。
  • "我需要将字母等级放入字符串类型的双精度数组中" - 您可能是指二维数组吗? “双数组”更有可能被解释为double[]

标签: java string character


【解决方案1】:

你需要默认返回一些东西,你不需要检查最后一个条件。

public static String getLetterGrade(double score) {
    if (90 >= score && score <= 100)
        return "A";

    if (80 >= score && score < 90)
        return "B";

    if (70 >= score && score < 80)
        return "C";

    if (60 >= score && score < 70)
        return "D";

    if (score > 100)
        return "Error";

    return "F";
}

【讨论】:

  • 如果 score100 更欢迎,则可以返回 F
  • "...你不需要检查最后一个条件。" - 我敢反对。如果分数出乎意料,例如,抛出某种Exception 会更干净。负数或大于 100。
  • 那是正确的,编辑后知道分数是否大于 100.. :)
【解决方案2】:

你需要返回一个值或者抛出一个异常,如果输入无效,我更愿意抛出一个异常,或者你可以返回一个代表无效输入的字符串;或为空。

public static String getLetterGrade(double score) throws Exception{
    if (90 >= score && score <= 100)
        return "A";

    if (80 >= score && score < 90)
        return "B";

    if (70 >= score && score < 80)
        return "C";

    if (60 >= score && score < 70)
        return "D";

    if (score < 60)
        return "F";

    throw new Exception("Invalid score");
}

【讨论】:

  • 不要抛出一些不明确的Exception。要么创建自己的,例如IllegalScoreException,或抛出现有异常,例如IllegalStateException.
  • 我完全同意,异常应该总是具体的,这个答案只是为了指出代码中的问题。
猜你喜欢
  • 2020-09-05
  • 2020-11-01
  • 2013-12-29
  • 2012-08-04
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多