这可能是一个自私的问题,但是有些不对劲,我需要经验丰富的编码器来帮助我看清看不见的东西。

它是一个简单的程序,可将“学生”类中的学生详细信息存储到ArrayList中。
在添加for循环之前,它一直运行正常。我没有任何语法错误,并且控制台中没有任何显示。

提前致谢!

public class Wizard
{
    public static void main(String[] args) {}

         ArrayList<Student> studentList;

    public Wizard()
    {
        studentList = new ArrayList<Student>();
        int numberOfStudents = 0;

        Scanner input = new Scanner(System.in);

        // Enter student details

        for(int n = 0; n < numberOfStudents; n=n+1)
        {

            // how many students are in the class
                System.out.print("How many students in your class?: ");
                numberOfStudents = input.nextInt();
                System.out.println("There are " + (numberOfStudents) + " students in the class.\n");


            // what is the students name
                System.out.print("Enter student " + (n + 1)+"'s name: ");
                String studentName = input.next();

            // what is the students grade
                System.out.print("Enter " + (studentName) + "'s grade: ");
                int studentGrade = input.nextInt();
                input.nextLine();

                        // make a new student

                Student newStudent = new Student(studentName, studentGrade);

            // Store student

                studentList.add(newStudent);
                System.out.println("Student " + newStudent.getName() + " has been added.\n");
        }
    }
}

最佳答案

numberOfStudents设置在哪里?您将变量初始化为int numberOfStudents = 0;,但是在for循环之前我看不到它得到任何其他值吗?

因此,基本上for循环不会执行一次,因为numberOfStudents0

同样,如果您打算在循环期间更改循环计数器变量,则应考虑使用while循环。当具有动态循环计数器最大值时,for循环并不是真正要使用的。

09-05 08:37