为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输入最后显示学生都是ID号?

https://img1.sycdn.imooc.com//5cbfc3130001b6f105790594.jpg最后都是ID号  不是学生名字?求解

正在回答

2 回答

虽然有点晚   if判断条件错误

0 回复 有任何疑惑可以回复我~

你的代码跟老师讲的一样,

你可以试试讲st.id也输出,看看是什么

/**
 * 测试添加:输入学生Id,判断是否被占用
 * 若未被占用,则输入姓名,创建新学生对象,并且添加到students中
 */
public void testPut(){
   //创建一个Scanner对象,用来获取输入的学生Id和姓名
    Scanner console = new Scanner(System.in);
    int i = 0;
    while (i < 3){
        System.out.println("请输入学生Id:");
        String ID = console.next();
        //判断该ID是否被占用
        Student st = students.get(ID);
        if (st == null){
            //提示输入学生姓名
            System.out.println("请输入学生姓名:");
            String name = console.next();
            //创建新的学生对象
            Student newStudent = new Student(ID,name);
            //通过调用students的put方法,添加ID-学生映射
            students.put(ID,newStudent);
            System.out.println("成功添加学生:" + students.get(ID).name);
            i++;
        }
        else {
            System.out.println("该学生ID已被占用!");
            continue;
        }
    }
}

/**
 * 测试Map的keySet方法
 */
public void testKeySet(){
    //通过keySet方法,返回Map中的所有“键”的Set集合
    Set<String> keySet = students.keySet();
    //取得students的容量
    System.out.println("总共有:" + keySet.size() + "个学生");
    //遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
    for (String stuId:keySet){
        Student st = students.get(stuId);
        if (st != null)
            System.out.println("学生:" + st.name);
    }
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么输入最后显示学生都是ID号?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信