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