1

我正在尝试创建一种方法,该方法在数组中搜索用户指定的名称并返回其在数组中的位置,如果未找到该名称,则返回 -1。我以为我有它,但是我收到一条错误消息,指出“并非所有代码路径都返回一个值”代码以方法的名称将其抛出,因此它不是很具体,尽管我并不期望该错误具有太多特异性。

无论如何,这是代码,谁能告诉我是什么引发了错误?

    static int FindStudent()//search for student name
    {
        while (z < NameArray.Length)
        {
            if (name == NameArray[z])
            {
                return z;
            }//end if statement
            else
            {
                z++;
            }//end else statement
        }//end while loop
        if (z==5)
        {
            return -1;
        }//end student not found
    }//end FindStudent method
4

1 回答 1

3

删除您的最终 if 语句。正如您的代码现在一样,如果您的数组中恰好有 4 个项目并且它们都不匹配,它只会返回 -1。就此而言,您也可以删除您的 else ;因为它上面的 if 返回,所以 else 是隐含的。

static int FindStudent()//search for student name
{
    while (z < NameArray.Length)
    {
        if (name == NameArray[z])
        {
            return z;
        }
        z++;
    }
    return -1;// student not found
}
于 2012-10-30T23:52:17.480 回答