我是学生,这是一种练习,这是此方法的目标:
此方法应返回名称与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
。