2014-11-03 143 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; 
} 

没有理由要求用户无用的变量传递给你的函数。

最后,您实现此功能的方式非常单一。如果你想,你可以将一个迭代函数传递给该函数,并在该方法内遍历它,并且您将能够确定最大值的任何值。就目前而言,当且仅当用户有五个值要检查时,这才起作用。