在搜索数组时,并非所有代码路径都返回值

时间:2012-10-30 23:44:23

标签: c# arrays return

我正在尝试创建一个方法,在数组中搜索用户指定的名称并返回其在数组中的位置,如果找不到名称,则返回-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

1 个答案:

答案 0 :(得分:3)

删除最终的if语句。正如您的代码现在一样,如果您的数组中只有4个项目并且它们都不匹配,则它将仅返回-1。就此而言,您也可以删除其他人;因为它上面的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
}