顺序搜索Java丢失返回语句



我不明白为什么我总是得到"缺少返回语句"的错误。任何帮助都是感激的。谢谢你。

//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语句,例如,它返回一些东西。

最新更新