代码似乎读得正确,但它不会运行

时间:2014-03-23 05:13:43

标签: java class for-loop

这可能是一个自私的问题,但有些事情是不对的,我需要一个经验丰富的程序员来帮助我看到看不见的事。

它是一个简单的程序,可将学生详细信息从“Student”类存储到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");
        }
    }
}   

2 个答案:

答案 0 :(得分:3)

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

所以基本上for - 循环不执行一次,因为numberOfStudents0

此外,如果您计划在循环期间更改循环计数器变量,则应考虑使用while循环。 for - 当具有动态循环计数器最大值时,实际上并不意味着使用循环。

答案 1 :(得分:2)

由于您将numberOfStudents设置为0,因此根本无法完成循环。