问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

为什么我的代码最后没有输出所选课程?

package ⅣCollectionMap;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class SetTest {
    public List<Course> coursesToSelect;
    public SetTest(){
        coursesToSelect = new ArrayList<Course>();
    }

    public void testAdd(){
        Course[] courses = {new Course("1.","大学英语"),new Course("2.","高等数学"),new Course("3.","微机原理"),new Course("4.","数字电子技术"),new Course("5.","模拟电子技术"),new Course("6.","自动控制技术")};
    }

    public void testForEach(){
        System.out.println("有如下课程待选(通过for each访问):");
        for (Course cr:coursesToSelect){
            System.out.println("课程:"+ cr.id + "." + cr.name);
        }
    }

    public static void main(String[] args){
        SetTest st = new SetTest();
        st.testAdd();
        st.testForEach();
        //创建一个学生对象
        Student student = new Student("1","小明");
        System.out.println("欢迎学生:"+ student.name + "——选课!");
        //创建一个Scanner对象,用来接收从键盘输入的课程ID
        Scanner console = new Scanner(System.in);
        for (int i=0;i<3;i++){
            System.out.println("请输入课程ID:");
            String courseId = console.next();
            for (Course cr:st.coursesToSelect){
                if (cr.id.equals(courseId)){
                    student.courses.add(cr);
                }
            }
        }
        st.testForEachForSet(student);
    }

    public void testForEachForSet(Student student){
        System.out.println(111111);
      //打印输出,学生所选课程!
     for (Course cr : student.courses){
            System.out.println(student.name + "选择了课程:"+ cr.id + "."+cr.name);
     }
    }
}


提问者:qq_亭亭雨中_0 2019-08-06 10:16

个回答

  • 慕粉7367658
    2019-08-22 20:51:08

    没有添加进去 你只创建了 数组 没把数组中的 对象添加到集合中 肯定啥也遍历不出来


  • Pikachu2016
    2019-08-12 11:15:51

    主要是你的testAdd()方法中只是创建了对象,并没有把创建的课程对象添加到courseToSelect中

  • 半梦半痴狂
    2019-08-06 17:47:04

    有没有数组越界异常,看看报错原因,