我不明白为什么我总是得到"缺少返回语句"的错误。任何帮助都是感激的。谢谢你。
//sequential search
public static int seqSearch(int[] items, int goal)throws IOException
{
int c;
for (c = 0; c < items.length; c++)
{
if (items[c] == goal) // Searching element is present
return c;
}
if (c == items.length) // Searching element is absent
return (-1);
}//end seq
仅当items[c] == goal
在循环内或if (c == items.length)
时返回一些东西。这意味着你在最后一次迭代中返回-1但是如果你已经迭代了那么远你已经遍历了整个数组。替换
if (c == items.length) // Searching element is absent
return (-1);
+
return (-1);
应该做这项工作
因为你的两个返回语句都在
里面if(...){
return
}
因此,在某些情况下,您的代码可能"错过"两个返回语句。这意味着如果这些if语句都不为真,你的方法将不会返回任何东西。您是否需要在最后一个if语句中添加else语句,例如,它返回一些东西。