这是我很长时间以来一直遇到的问题,如果我最终能找到答案的话,那会很好。我在学校的讲师似乎总是为此提出一个解决方案,但是我需要知道如何解决它。

/**
 * This program lets you enter your students names and grades
 *
 * @author (Austin)
 * @version (1.0.0)
 */

import java.io.*;
import java.util.*;
public class Tester
{
    public static void main (String args[])
    {
        Scanner kb = new Scanner(System.in);

    System.out.println ("How many students do you have?");
    int numOfStudents = kb.nextInt();

    String studentName[] = new String [numOfStudents];
    int studentGrade[] = new int[numOfStudents];

    System.out.println ("Please enter student name, then hit enter. Then enter student grade.");
    int x;
    int y;
    for (x = 0; x <= numOfStudents - 1; x++)
    {
        String name = kb.next();
        studentName[x] = name;
        for (y = 0; y <= 0; y++)
        {
            int grade = kb.nextInt();
            studentGrade[y] = grade;
        }
        if (x != numOfStudents -1)
        {
            System.out.println ("");
            System.out.println ("Next Student:");
            System.out.println ("");
        }
    }

    System.out.println ("What would you like to do?");
    System.out.println ("1. Find class average\n2. Find student grade");
    int user = kb.nextInt();

    Grade_Methods g1 = new Grade_Methods();
    int z;

    if (user == 1)
    {
        for (z = 0; z <=numOfStudents - 1; z++)
        {
            int a =+ studentGrade[z];
        }
        g1.gradeAverage(a,numOfStudents);
    }
}
}


问题在代码底部的if语句中。该程序旨在帮助我更好地理解数组,除了使用for循环外,我不知道如何从数组中提取数据。我的问题是,当我尝试将数组studentGrade中的所有值存储为int a时,作为所有年级的总值时,下面的行(尝试将其调用为方法)无法识别int a已声明。

最佳答案

您的int a已在for循环的范围内声明。如果要在循环外访问变量,请使用以下命令:

int a = 0;
for (z = 0; z <=numOfStudents - 1; z++)
{
    a += studentGrade[z];
}
g1.gradeAverage(a,numOfStudents);

10-07 18:58
查看更多