我试图使用循环函数从数组中找到索引,但是我收到错误:
private function findMatch(matchValue:int):int {
for (var i:int = 0; i < playersList.length; i++) {
if (playersList[i].value + matchValue == levelTarget) {
return i;
}
}
}
是否无法从循环内部返回值,或者更确切地说,每次不返回值时我都会收到错误?!
答案 0 :(得分:1)
private function findMatch(matchValue:int):int {
var _i:int = -1;
for (var i:int = 0; i < playersList.length; i++) {
if (playersList[i].value + matchValue == levelTarget) {
_i = i;
break;
}
}
return _i;
}
答案 1 :(得分:0)
您可以从函数中的任何位置返回,但必须使用返回值来满足所有代码路径。如上所述,您需要返回“无效”值以指示未找到索引,通常为-1
。
答案 2 :(得分:0)
在许多编程语言中,您可以从方法中的任何位置返回。编译器可能抱怨,因为它无法确定它是否会在循环中找到正确的值,然后将无法返回(即使您作为开发人员确信它将在退出循环之前返回)。 / p>
所以是的,在最后添加一些默认返回是正确的事情,-1
是这种事情的常见默认答案。