2017-09-27 132 views
0

公共類SingelNumber {(Java)的錯誤:此方法必須返回一個int類型

public static void main(String[] args) { 
    int[] numList = {1,1,2,2,3,1,7,3}; 
    System.out.print(singleNumber(numList)); 

} 
public static int singleNumber(int[] nums) { 

     boolean dup = false; 
     int check = 0; 

     for (int i=0;i<nums.length;i++){ 
      check =nums[i]; 
      for (int j=i+1;j<nums.length;j++){ 
       if (check==nums[j]) 
        dup = true; 
        break; 
      } 

      } 
     if (dup==false) 
      return check;  
    } 
} 

我得到一個錯誤的結果「這個方法必須返回一個int類型的結果」。我不知道爲什麼因爲變量檢查是一個int。

+2

如果兩個「if」檢查都沒有通過,那麼該方法返回什麼 – Ramanlfc

+0

如果'dup'爲true,那麼您沒有返回值。也不要在你的條件中顯式檢查布爾值,它已經是一個布爾值。改用'if(!dup)' –

+0

你只在某些條件下返回一個'int'。在其他條件下,你什麼也沒有返回。修復你的代碼格式,這將幫助你看到錯誤。 –

回答

0

Java的混亂做什麼,如果DUP是真的,你應該添加else語句:

if (dup==false) 
     return check; 
else return 0; 

您應該安裝一個IDE(如的IntelliJ),所以它會指出你的錯誤的時候了。

0

這是因爲你的函數只返回檢查dup是否爲false。如果dup是真的,它將返回undefined。

相關問題