java - For 循环缺少返回语句错误 - JAVA

标签 java if-statement return

我在最后一个括号上收到缺少返回语句的错误,我不知道为什么。该方法基本上采用与学生类(class)和当前调查问题相对应的字符串。外部 if 语句与主题相对应(例如:数学、科学、英语...)。 for 循环迭代数组并将用户输入(“美国历史”)与数组列表中的字符串进行匹配。如果它们相等,则返回找到它的索引。否则,它继续 for 循环。该方法返回一个 int,但我仍然在最后一个括号上收到错误。请帮忙!

 public static int findNumber(String course, int currentQuestion) {
    String newCourse = course.toLowerCase();

    if (RateDriver.levelText.equals("math")) {
      for (int i = 0; i < RateSurvey.math.length-1;i++) {
        if (newCourse.equals(RateSurvey.math[i])) return survey[currentQuestion][i];
      }
      return 100;
    }

    else if (RateDriver.levelText.equals("science")) {
      for (int i = 0; i < RateSurvey.science.length-1;i++) {
        if (newCourse.equals(RateSurvey.science[i])) return survey[currentQuestion][i];

      }
      return 100;
    }
    else if (RateDriver.levelText.equals("english")) {
      for (int i = 0; i < RateSurvey.english.length-1;i++) {
        if (newCourse.equals(RateSurvey.english[i])) return survey[currentQuestion][i];

      }
      return 100;
    }
    else if (RateDriver.levelText.equals("social studies")) {
      for (int i = 0; i < RateSurvey.social.length-1;i++) {
        if (newCourse.equals(RateSurvey.social[i]))  return survey[currentQuestion][i];
      }
    }
    else if (RateDriver.levelText.equals("art")) {
      for (int i = 0; i < RateSurvey.art.length-1;i++) {
        if (newCourse.equals(RateSurvey.art[i])) return survey[currentQuestion][i];
      }
      return 100;
    }
    else if (RateDriver.levelText.equals("pe")) {
      for (int i = 0; i < RateSurvey.pe.length-1;i++) {
        if (newCourse.equals(RateSurvey.pe[i])) return survey[currentQuestion][i];
      }
    }
    else if (RateDriver.levelText.equals("chinese")) {
      for (int i = 0; i < RateSurvey.chinese.length-1;i++) {
        if (newCourse.equals(RateSurvey.chinese[i])) return survey[currentQuestion][i];
      }
    }
    else if (RateDriver.levelText.equals("japanese")) {
      for (int i = 0; i < RateSurvey.japanese.length-1;i++) {
        if (newCourse.equals(RateSurvey.japanese[i])) return survey[currentQuestion][i];
      }
      return 100;
    }
    else if (RateDriver.levelText.equals("french")) {
      for (int i = 0; i < RateSurvey.french.length-1;i++) {
        if (newCourse.equals(RateSurvey.french[i])) return survey[currentQuestion][i];
      }
      return 100;
    }
    else if (RateDriver.levelText.equals("spanish")) {
      for (int i = 0; i < RateSurvey.spanish.length-1;i++) {
        if (newCourse.equals(RateSurvey.spanish[i])) return survey[currentQuestion][i];
      }
      return 100;
    }
    else if (RateDriver.levelText.equals("hawaiian")) {
      for (int i = 0; i < RateSurvey.hawaiian.length-1;i++) {
        if (newCourse.equals(RateSurvey.hawaiian[i])) return survey[currentQuestion][i];
      }
      return 100;
    }
    else return 100;

  **}** // this is where I get the error

最佳答案

如果 for 循环中没有返回任何内容,则代码的某些部分不会返回任何内容,例如:

else if (RateDriver.levelText.equals("social studies")) {
  for (int i = 0; i < RateSurvey.social.length-1;i++) {
    if (newCourse.equals(RateSurvey.social[i]))  return survey[currentQuestion][i];
  }
}

因此,如果程序到达这部分代码并且最终没有返回 survey[currentQuestion][i],那么它将跳到 if-else 链的末尾,而不是返回返回任何东西。您应该将它们更改为如下所示:

else if (RateDriver.levelText.equals("social studies")) {
  for (int i = 0; i < RateSurvey.social.length-1;i++) {
    if (newCourse.equals(RateSurvey.social[i]))  return survey[currentQuestion][i];
  }
  return 100;
}

关于java - For 循环缺少返回语句错误 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923853/

相关文章:

java - 如何在 Spring Data Rest 上的 GET/find 中对实体进行计算?

java - 使用 c 访问映射中的值 :out tag

c# - 如何确保用户在文本框中输入了电子邮件地址?

JavaScript;函数 (x,y,z),对如何传递值感到困惑

java - 返回 ArrayList 给出错误 : cannot find symbol

java - Linux Java Swing 应用程序的 Kiosk 模式

java - Java中的初始化顺序: exception with Netty 4. 0.7

python - 在 Python 中使用 if/else 语句和退出函数

mysql 子查询作为 if 条件(仅在需要时)

c# - 有趣的代码片段