2016-03-09 120 views
-1

我不斷收到一個缺少return語句的錯誤,但我不知道在哪裏。每次我按照代碼,我都覺得至少有一個if語句提供了return語句。缺少return語句

代碼:

public User[] getUsersContaining(String query) { 
    User[]nameSearch = new User[this.capacity]; 

    if(nameSearch == null) 
     return null; 
    for (int i=0; i<this.capacity; i++){ 
     if(this.array[i].getName().contains(query)){ 
     nameSearch[i]=this.array[i]; 
     bubbleSort date2 = new bubbleSort(); 
     date2.bubblesort(nameSearch); 
     return nameSearch; 
     } 
    } 
} 
+0

好吧,我想我明白你是什​​麼意思。如果我在方法的末尾放置返回語句,那麼這意味着最終的返回值是什麼?當我在方法結束時返回null時,應用程序會發出錯誤,所以我不知道該返回什麼。當我嘗試一個else if語句後返回null時,我仍然得到缺少的返回語句錯誤。對不起,我對編程很陌生。 – user6036979

+0

如果你的函數是爲了「獲得...」而返回的東西,那麼你將返回函數的目的是「獲取」。你的函數被稱爲「getUsersContaining」,所以你應該返回包含字符串的用戶。 – Carcigenicate

+0

發生錯誤是因爲如果'this.capacity' == 0,nameSearch!= null,您的函數將不會返回任何內容,因爲它永遠不會進入循環。 – Carcigenicate

回答

3

它聲明的返回類型必須聲明return語句該方法的流程的每一個可能的分支的方法。這意味着你的方法中基本上有一個可能的代碼流,它不會以return語句結束(提示:如果你的if語句每次在循環內部返回false,會發生什麼情況?最終循環會結束並且不會返回任何內容。)

你可以把一個包羅萬象的return語句在你的方法做事的底好像回到null,或者甚至拋出Exception這將使你不是「返回任何東西」