2013-11-15 24 views
0

我不断收到这段代码的返回语句错误。对我来说看起来很好,也许有人在这里可以帮忙?基本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; 
} 
+2

您的缩进暗示您的代码不会执行您认为的操作。 –

回答

2

编译器,该方法不包含return语句是保证在任何情况下被执行。你有一个returnfor循环,但编译器不知道,如果至少一个迭代将被执行,因此,如果return语句会被执行实在拿不准

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; 
} 
0

目前你所拥有的将返回-1总是会有例外,当numberArray[0]searchingNum。你大概意思是这样的:

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

也分了countnumberArray.length - 这将节省一些时间,你的情况下,count不等于的numberArray

0

问题长度时发生了什么循环未执行,将返回什么?您有一个路径不返回按方法返回类型指定的期望值。

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;