我是学生,这是一种练习,这是此方法的目标:
此方法应返回名称与Athlete数组匹配的第一个元素。
名称参数。如果没有匹配的运动员,则返回null。

由于某种原因,我遇到了这个错误,

TestAthletes.java:15: error: missing return statement
 }

这是我的代码:
public class TestAthletes{

   public static Athlete findAthleteByName(Athlete[] athletes, String name){
        for(int i=0; i<athletes.length; i++){
            if(name.equals(athletes[i].getName()))
                return athletes[i];
            else
                return null;
        }
    }
}

无法找出问题所在。

最佳答案

您的return null语句应该在循环之外。当前,如果第一个值不匹配,它将返回null

public static Athlete findAthleteByName(Athlete[] athletes, String name){
    for(int i=0; i<athletes.length; i++){
        if(name.equals(athletes[i].getName()))
            return athletes[i];
    }
    return null;
}

跟踪当前发生的情况。您是第一次在athletes[0]循环中测试for。如果不匹配,则if失败,它将执行else,返回null

此外,如果数组的长度为0,则for循环中的任何内容都不会执行,因此它将永远不会return

10-07 11:58