2014-10-07 41 views
1

顯然Eclipse一直給我一個錯誤,要求我返回一個int。 array[i]不被認爲是int或者我們不能像這樣在java中返回一個數組的索引?任何人都可以幫助我?爲什麼我不能在Java中以int形式返回數組的索引?

public static void main(String[] args){  
    int[] array = {10,6,4,3,12,19,18}; 
    int z = quick_find_1d_peak1(array); 
    System.out.println(z); 
} 

public static int quick_find_1d_peak1(int[] inputArray){ 
    for (int i=0 ; i<inputArray.length ;){ 
     if (i==0 && inputArray[i] >= inputArray[i+1]){ 
      return inputArray[i]; 
     } else if (i==inputArray.length && inputArray[i] >= inputArray[i-1]){ 
      return inputArray[i]; 
     } else if (inputArray[i] >= inputArray[i-1] && inputArray[i] >= inputArray[i+1]){ 
      return inputArray[i]; 
     } else { 
      i++; 
     } 
    } 
} 
+0

對不起,錯誤的標籤。 – NoobCoder 2014-10-07 16:14:18

+1

與您的問題沒有直接關係,但第一個'else'子句中的條件永遠不會成立,所以代碼永遠不會被執行。 (它應該讀取'i == inputArray.length-1 && ...'而不是?) – 2014-10-07 16:25:18

回答

2

quick_find_1d_peak1,你最後的條件(在else)不返回任何東西。這意味着有可能沒有回報。爲了解決這個問題,可以返回else(這可能不是你想要做的事,因爲你正在增加i去下一個),或者在for循環之後返回一些東西,所以不管什麼東西都會返回。

2

您不能保證返回結果。例如,假設inputArray爲空,那麼for循環永遠不會進入,並且不返回任何內容。或者,如果循環內沒有任何條件觸發,那麼您的else不會返回任何內容。

你必須保證你在方法中返回一些東西(或拋出異常)。

相關問題