2014-11-03 142 views
0
/** 
    * getLargestOfFive method 
    * input parameters: int values num1, num2, num3, num4, num5 
    * return value : largest value among 5 input parameters 
    */ 


import java.util.Scanner; 

public class LargestOfFive2{ 

    public static void main(String[] args){ 



    ***public static int getLargestOfFive(int num1, int num2, int num3, int num4, int num5, int largest){*** 



     largest = num1; 

     if (num2 > largest){ 
     largest = num2; 
     } 
     if (num3 > largest){ 
     largest = num3; 
     } 
     if (num4 > largest){ 
     largest = num4; 
     } 
     if (num5 > largest){ 
     largest = num5; 

     } 

     return largest; 


    } 

    } 

} 
+0

你的問題是什麼?你究竟在哪裏得到錯誤? – 2014-11-03 04:19:10

+2

爲什麼你用「***」來包圍你的方法聲明?刪除它們。另外,你不能像Java那樣嵌套方法聲明。 – azurefrog 2014-11-03 04:19:19

+0

另外你在另一個函數(主) – Simba 2014-11-03 04:20:12

回答

5
public static void main(String[] args){ 
public static int getLargestOfFive(int agumentsHere){ // method inside method? 
} 
} 

您不能在Java中嵌套方法。重新安排你的代碼。

public static void main(String[] args){ 
    // call your method from main 
    // eg 
    int val=getLargestOfFive(arguments); 
} 
public static int getLargestOfFive(int agumentsHere){ 
} 

閱讀Java DOC約methodsJava

0

你得到這麼多錯誤的主要原因很可能是你已經在方法內部放置了一個方法。你不能在你的main()方法中包含getLargestOfFive - 在Java中沒有嵌套方法那樣的東西。相反,分開你的方法是這樣的:

public static void main(String[] args) 
{ 

} 

public static int getLargestOfFive(int num1, int num2, int num3, int num4 ...) 
{ 

} 

請注意,你正在做一些奇怪的東西,在分配變量方面。將largest傳遞給你的方法毫無意義。相反,定義和你的函數開始分配給它,像這樣:

public static int getLargestOfFive(...) 
{ 
    int largest = num1; 
} 

沒有理由要求用戶無用的變量傳遞給你的函數。

最後,您實現此功能的方式非常單一。如果你想,你可以將一個迭代函數傳遞給該函數,並在該方法內遍歷它,並且您將能夠確定最大值的任何值。就目前而言,當且僅當用戶有五個值要檢查時,這才起作用。