基本Java:返回语句中的错误?

时间:2013-11-15 16:24:25

标签: java

我不断收到此段代码的返回语句错误。看起来很好,也许在这里的人可以帮忙吗?

//It returns the index of the number specified by the parameter is
//located. If the number is not found, it returns -1.
private int indexOf(int searchingNum) {
    for (int index = 0; index < count; index++)
        if (numberArray[index] == searchingNum) {
            return index;
        } else 
            return -1;
}

5 个答案:

答案 0 :(得分:2)

对于编译器,此方法不包含在任何情况下都要执行保证return语句。你的return循环中有for,但编译器不知道是否至少会执行一次迭代,因此不确定是否会执行return语句< / p>

答案 1 :(得分:2)

不需要您的上次else

//It returns the index of the number specified by the parameter is
//located. If the number is not found, it returns -1.
private int indexOf(int searchingNum)
{
    for (int index = 0; index < count; index++)
        if (numberArray[index] == searchingNum){
            return index;
        }
    }
    return -1;
}

答案 2 :(得分:0)

numberArray[0] searchingNum private int indexOf(int searchingNum) { for (int index = 0; index < count; index++) { if (numberArray[index] == searchingNum) { return index; } } return -1; } 时,您所拥有的内容将始终返回-1。你可能的意思是:

count

还将numberArray.length转换为count - 如果numberArray不等于{{1}}

的长度,这将节省一些时间

答案 3 :(得分:0)

问题是当for循环没有执行时会发生什么,会返回什么?您有一个路径不返回由方法的返回类型指定的预期值。

答案 4 :(得分:0)

如果return语句中包含return语句,则表示错误if-else错误。在所有条件语句(包括循环)范围之外的return个文件上必须至少有一个。

private int indexOf(int searchingNum) {
for (int index = 0; index < count; index++)
if (numberArray[index] == searchingNum){
  return index;
}
else return -1;