2012-10-30 57 views
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 
+0

這是Java還是C#?猜測並選擇了C#。隨後可以隨時更改標籤。 –

+2

而且,如果'z!= 5',你回到......究竟是什麼? –

+1

我不相信它被提及,但'z'似乎並沒有在這裏初始化;也許這是一個成員變量,但考慮到我不認爲這是問題的背景。我猜它不是C#/ Java,或者是僞代碼。 – Dan

回答

3

刪除您最終的if語句。由於你的代碼現在,它只會返回-1,如果你的數組中只有4個項目,並且它們都不匹配。對於這個問題,你也可以刪除你的其他人;因爲如果它在上面返回,其他的就是隱含的。

static int FindStudent()//search for student name 
{ 
    while (z < NameArray.Length) 
    { 
     if (name == NameArray[z]) 
     { 
      return z; 
     } 
     z++; 
    } 
    return -1;// student not found 
} 
+0

。謝謝。我想我讓它變得比它需要的更復雜 – user1787114

相關問題