Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写测试java平均成绩的方法_Java - Fatal编程技术网

编写测试java平均成绩的方法

编写测试java平均成绩的方法,java,Java,我正在为家庭作业写代码,我被卡住了 作业是编写一个程序,以获得用户输入的10个等级的平均值 我相信我得到了大部分,但在averageGrades方法中,当我试图声明average时,它不允许我这样做 这就是我所拥有的: public class Averagegrades { public int min, max; double average; public static void main (String [] args) { dou

我正在为家庭作业写代码,我被卡住了

作业是编写一个程序,以获得用户输入的10个等级的平均值

我相信我得到了大部分,但在
averageGrades
方法中,当我试图声明
average
时,它不允许我这样做

这就是我所拥有的:

public class Averagegrades 
{
    public int min, max;
    double average; 

    public static void main (String [] args)
    {

        double sum = 0;
        Scanner scan = new Scanner(System.in);
        int [] gradesarray = new int[10];

        System.out.println("Please enter the 10 test grades: ");

        for (int i = 0; i < gradesarray.length; i++)
        {            
            gradesarray[i] = scan.nextInt();

            if(gradesarray[i] > 100)
            {
                System.out.println("Please enter a number within 0 - 100: ");
                gradesarray[i] = scan.nextInt();
            }
        }

        System.out.println("These are the grades you entered: " +
            Arrays.toString(gradesarray));
        System.out.println("You have entered " + gradesarray.length + " grades");

        for(double num : gradesarray)
        {
            sum = sum + num;
        }

        System.out.println("This is the sum " + sum);
    }

    public double averageGrades()
    {
        average = sum / (double) gradesarray.length;
    }
public class平均成绩
{
公共整数最小值,最大值;
双倍平均;
公共静态void main(字符串[]args)
{
双和=0;
扫描仪扫描=新扫描仪(System.in);
int[]gradesarray=新int[10];
System.out.println(“请输入10个测试等级:”);
对于(int i=0;i100)
{
System.out.println(“请输入一个0-100范围内的数字:”);
gradesarray[i]=scan.nextInt();
}
}
System.out.println(“这些是您输入的分数:”+
toString(gradesarray));
System.out.println(“您已输入”+gradesarray.length+“grades”);
用于(双数:gradesarray)
{
sum=sum+num;
}
System.out.println(“这是总和”+总和);
}
公共双平均等级()
{
平均值=总和/(双)等级平均长度;
}

因此这将允许您声明平均值。问题是方法averageGrades无法找到sum或gradesarray,因为这两个变量是在主方法中声明的,因此对方法不可见

package test;

import java.util.Arrays;
import java.util.Scanner;

public class Averagegrades 
{
public int min, max;
double average; 
static double sum;
static int[] gradesarray;

public static void main (String [] args)
{
    sum = 0;
    Scanner scan = new Scanner(System.in);
    gradesarray = new int[10];
    System.out.println("Please enter the 10 test grades: ");

    for (int i = 0; i < gradesarray.length; i++)
    {            
        gradesarray[i] = scan.nextInt();
        if(gradesarray[i] > 100)
        {
            System.out.println("Please enter a number within 0 - 100: ");
            gradesarray[i] = scan.nextInt();
        }
    }
    System.out.println("These are the grades you entered: "+
            Arrays.toString(gradesarray));
    System.out.println("You have entered "+gradesarray.length+" grades");

    for(double num : gradesarray)
    {
        sum = sum + num;
    }
    System.out.println("This is the sum "+sum);
}

public double averageGrades()
{
    average = sum / (double) gradesarray.length;
    return average ;
}
然后在调用该方法时

averageGrades(sum, gradesarray);
这样,您就不必将sum和gradesarray声明移到main方法之外


希望这有帮助!

您的总和变量的范围仅限于主方法,但是您在averageGrade方法中使用总和变量,它位于主方法之外

要克服这个问题,请声明sum变量,使其作用域覆盖整个类。在min、max和average变量旁边声明sum变量

整数数组对象也会出现同样的问题。我建议您仔细阅读变量范围



有关变量作用域的详细信息,请查看:

如果编译器告诉您有错误,而您被困在此处发布完整的错误消息。但是看起来您正在尝试使用一个变量,
sum
,它在averageGrades方法的作用域中不可见。我在类中声明了它。这不是吗?
sum
不在类中相同的作用域,因此无法在方法AverageGrades中将sum和gradesarray移动到类级别的作用域中。当前可见性仅在
main
中,可能需要进行静态设置,然后对其进行初始化
averageGrades(sum, gradesarray);