2017-06-06 149 views
-3

我有這個代碼的問題。控制檯向我顯示這個錯誤,我無法弄清楚。 「第7行的file.java:錯誤:';'預計「我遇到了「錯誤」問題;「預計「

int adjacentElementsProduct(int[] inputArray) { 
    int numberofElements = inputArray.length(); 
    int [] products = new int [numberofElements]; 
    for (int firstNumber = 0; numberofElements > firstNumber; firstNumber++) { 
     products [firstNumber] = product (inputArray [firstNumber], inputArray [1+firstNumber]); 
    }; 
    int maxValue() { 
     int x = products [0]; 
     for (int i = 1; i < products.length; i++) { 
      if (products [i] > x){ 
       x = products [i]; 
      } 
     } 
     return x; 
    } 
    return maxValue; 
} 

如果任何人都可以幫助我這個,我真的很感激。 謝謝。

+1

這裏有很多問題。數組沒有'length()'方法,但是'length'字段。你正在其他方法中聲明方法(你不能用Java來做到這一點)。在'adjacentElementsProduct'方法中,你返回未定義的maxValue變量,如果你想返回'maxValue'方法的結果,你需要把它寫成'return maxValue();'(大多數方法都是爲了處理一些參數,如果沒有參數,至少通過'()'顯示。在'maxValue'裏面,你試圖訪問'products [0]',但是沒有任何地方定義產品數組。也沒有「產品」方法。 – Pshemo

回答

0

功能maxValueadjacentElementsProduct內定義。

0

您在adjacentElementsProduct方法中聲明方法maxValue,要更改此操作,您需要提取它並使其接受數組並返回int值爲最大值。

int maxValue (int[] products) { 
    int x = products [0]; 
    for (int i = 1; i < products.length; i++) { 
     if (products [i] > x){ 
      x = products [i]; 
     } 
    } 
    return x; 
} 

的方法不驗證輸入數組的長度,你需要考慮到這一點

終於把它作爲return maxValue(products);

0

代碼是不正確格式化,因爲你有一個方法maxValue方法adjacentElementsProduct的內部。

這是應該的:

int adjacentElementsProduct(int[] inputArray) { 
    int numberofElements = inputArray.length(); 
    int [] products = new int [numberofElements]; 
    for (int firstNumber = 0; numberofElements > firstNumber; firstNumber++) { 
     products [firstNumber] = product (inputArray [firstNumber], inputArray [1+firstNumber]); 
    } 
    return maxValue; 
} 

int maxValue() { 
    int x = products [0]; 
    for (int i = 1; i < products.length; i++) { 
     if (products [i] > x){ 
      x = products [i]; 
     } 
    } 
    return x; 
} 

此外,你必須一個一個額外的/沒用分號結束for循環,包括maxValue方法的聲明之前之後

希望它可以幫助

+0

我是一個初學者,所以我只是意識到我不能在方法中放置一個方法。你的評論對我很有幫助。謝謝。 :D。 –

+0

@Thang Nguyen還有,你的代碼有幾個問題。 Product是在adjacentElementsProduct方法中聲明的數組,因此maxValue方法無法訪問它,因此它必須接受它作爲參數。而且,length是一個數組的屬性,而不是一個方法,所以它應該被稱爲inputArray.length; 最後,你調用maxValue函數也不好,應該叫做return maxValue(); (當然,如果你真的想把它作爲回報聲明) – redbaron

0

要把每個人的意見都轉化爲文字。數組使用數據字段來訪問長度,因爲它不是您不使用的方法()。

array.length 

接下來的事情是你的for循環在最後一個括號的末尾有一個分號,它可以防止它發生。所以拿出來。

接下來,您不能在另一個方法中聲明一個方法。在此方法外寫入第二個方法,然後在另一個方法內調用它。

接下來你不能像你那樣調用nextValue方法。即使你不能把它放在那裏調用它,你必須調用它像這樣:

你做了什麼:

return maxValue; 

你應該做的:

/*something*/.nextValue(); 

修復這些東西你應該擺脫這些錯誤。