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