保存不确定数量的用户输入

时间:2018-07-15 09:25:50

标签: java arrays methods

我在JAVA中创建了一个程序,该程序的菜单选项为1至5。选项4为“添加学生”。在哪里问四个问题

Questions: 
Please Enter student name:
Please Enter student course:
Please Enter student number:
Please Enter student gender:

用户提供了这些详细信息后,它将保存到数组中并结束程序。我对如何将这些详细信息保存到数组中一无所知。

这是我自己尝试找到解决方案的程序,但是对数组和方法来说相对较新。

public static void newstudent (String[] name,String[] course,int[] number,String[] gender)
    {  
    }
    public static void selection (int option) // Menu
    {
        switch (option)  
       {
           case 1:
               System.out.println("Display Student option");
               break;
           case 2:
               System.out.println("Search Student");
               break;
           case 3:
               System.out.println("Delete Student");
               break;
           case 4:
               //code for adding new student
               break;
           case 5:
               System.out.println("Exited");
               break;

           default:JOptionPane.showMessageDialog(null, "Invalid option! Please enter in the range from 1 to 5.", "Error", JOptionPane.ERROR_MESSAGE);

       }

    }

    public static void main(String[] args) {
        //Start of Menu loop Statement
        int option1 ;

       do{
       String option = JOptionPane.showInputDialog(null,"Enter your option:\n"+"\n"+"1. Display Students\n"+"2. Search Students\n" + "3. Delete Students\n"+"4. Add Students\n"+"5. Exit ","DMIT Students",JOptionPane.QUESTION_MESSAGE);
       option1 = Integer.parseInt(option);

       selection(option1);


       }while(option1 <1 || option1 > 5);
       // End of Menu Loop statement

    }

}

我尝试做一个for循环,以便在用户每次输入所有这些详细信息时将+1添加到这些数组,但是for循环将陷入无限循环。有什么建议吗?或更简单的解决方案?

1 个答案:

答案 0 :(得分:0)

首先不应该使用数组(此处使用的方式),因为您不想将单个学生的详细信息存储在四个不同的位置,即数组。您可以使用所需的所有详细信息定义学生类,然后使用类实例轻松添加详细信息。像-

public class Student
{
    private String m_name;
    private int m_age;
    private String m_course;
    private String m_year;
    private String m_section;

    public Student( String name, int age, String course, String year, String section )
    {
        m_name = name;
        m_age = age;
        m_course = course;
        m_year = year;
        m_section = section;
    }

    public String getName()
    {
        return m_name;
    }

    public int getAge()
    {
        return m_age;
    }

    public String getCourse()
    {
        return m_course;
    }

    public String getYear()
    {
        return m_year;
    }

    public String getSection()
    {
        return m_section;
    }

    public String toString()
    {
        return "name: " + m_name + ", age: " + m_age + 
               ", course: " + m_course + ", year: " + m_year +
               ", section: " + m_section;
    }

    public static void main(String[] args) 
    {
       ArrayList<Student> students = new ArrayList<Student>();
       Scanner input = new Scanner(System.in);

       int menuChoice = 4;
       do {
           System.out.println("\t\t\tStudent Record Menu");
           System.out.println("\t\t1. Add Student\t2. View Students\t3. Search Student\t4. Exit");
           try {
               System.out.println("Enter a choice: ");
               menuChoice = Integer.parseInt(input.nextLine());
           } catch (NumberFormatException e) {
               continue;
           }

           if (menuChoice==1)
           {
               System.out.println("Full name:");
               String name = input.nextLine();

               int age = -1;
               do {
                   try {
                       System.out.println("Age:");
                       age = Integer.parseInt(input.nextLine());
                   } catch (NumberFormatException e) {
                       System.out.println("Enter a number!");
                       continue;
                   }
               } while (age <= 0);

               System.out.println("Course:");
               String course = input.nextLine();

               System.out.println("Year:");
               String year = input.nextLine();

               System.out.println("Section:");
               String section = input.nextLine();

               Student student = new Student(name, age, course, year, section);
               students.add(student);

           } else if (menuChoice==2) {
               System.out.println("Students:");
               for (Student student : students)
               {
                   System.out.println(student);
               }
           }
       } while (menuChoice<4);
    }
}

上面的代码段来自here