代码不能将数据存到集合里面的原因是因为在添加学生信息的方法中,使用了增强for循环遍历集合,并在循环中判断学生的学号是否已存在。如果学号不重复,则进行添加操作,否则输出'账号已存在'。然而,在第一次添加学生信息时,集合是空的,所以循环不会执行,导致无法向集合中添加学生信息。

解决方法是将判断学号是否已存在的逻辑放到循环之外,使用一个标志变量来记录是否存在重复学号。如果不存在重复学号,则进行添加操作,否则输出'账号已存在'。

修改后的代码如下:

public static void addStudentInfo() {
    System.out.println("**********添加学生信息**********");
    System.out.println("请输入学生学号:");
    long sid = sc.nextLong();
    System.out.println("请输入学生姓名:");
    String name = sc.next();
    System.out.println("请输入学生年龄:");
    int age = sc.nextInt();
    System.out.println("请输入学生性别:");
    String sex = sc.next();
    System.out.println("请输入学生成绩:");
    double grade = sc.nextDouble();

    boolean isExist = false; // 标志变量,记录是否存在重复学号

    for (Student student : Arrays) {
        if (student.getSId() == sid) {
            isExist = true;
            break;
        }
    }

    if (isExist) {
        System.out.println("账号已存在");
    } else {
        Student newStudent = new Student(sid, name, age, sex, grade);
        Arrays.add(newStudent);
        System.out.println("添加成功");
    }
}

这样修改后,可以正确地将学生信息存入集合中。

Java学生管理系统:集合添加数据问题及解决方法

原文地址: https://www.cveoy.top/t/topic/qd8H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录