2015-07-22 67 views
2

当然,我可以简单地完成主要方法中的所有内容,但这并不能帮助我练习我熟悉的Java。所以我制作了一个平均程序,或者试着制作一个平均程序,在这里输入三个变量,然后用不同的方法计算平均值并返回最终结果。这里是我的代码:平均程序错误(Java),(调试)

package test; 
import java.util.Scanner; 

public class testingclass { 
    public static void main(String args[]){ 
     Scanner input = new Scanner(System.in); 

     double[] grades = new double[3]; 
     System.out.println("Enter 3 grades you want to average out: "); 
     grades[0] = input.nextDouble(); 
     grades[1] = input.nextDouble(); 
     grades[2] = input.nextDouble(); 

     display(grades); 
     System.out.println(average); 

    } 

    public static double display(double[] x){ 
     double total = 0; 
     for(int counter = 0; counter < x.length; counter++){ 
      total = total + x[counter]; 
     } 

     double average = total/x.length; 
     return average; 
    } 
} 

所以我把一切都做,但现在我不知道去哪里,当我做System.out.println(average);它告诉我,平均是不是一个变量。有人可以帮我弄这个吗?

回答

3

由于您的display方法的average是本地的,因此您会收到错误。尝试:

System.out.println(display(grades)); 
+0

谢谢,它现在有效。还有一件事,你能解释一下返回命令吗?我不明白如何返回值的工作。你打电话(显示器(等级));在打印命令中,它会自动知道使用返回命令给你。我不完全理解这个概念。 – Code123

+0

@ Code123基本上,在您的显示方法中,您将'grades'输入到'double [] x'参数中,然后处理该参数以获得平均值,并返回一个double。 – UnknownOctopus

+0

另一种表达方式没有太计算机科学: return语句告诉代码用return语句中给出的值替换对该函数的调用。就你而言,你正在告诉代码将'display(grades)'的表达式替换为'average'的计算结果。 – schtever

3

average在您的主要方法中不是局部变量,只有在display方法中。用途:

System.out.println(display(grades)); 

认为它这样,你在呼唤与display(grades);你的显示方法,该方法返回输入的双阵列的平均值。在这种情况下,grades是要进行平均的数组。