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

Map添加问题

http://img1.sycdn.imooc.com//565cf4860001665901780426.jpg

我写的程序,运行出来为什么是这样,从控制台输入:李,传进对象中,在输出,为什么变了呢?以下是我的添加函数

public void testIuput(){
  String ID;
  String name;
  Scanner sc=new Scanner(System.in);
  int i=0;
  while(i<3){
   System.out.println("请输入第"+(i+1)+"位学生ID:");
    ID=sc.next();
    Student st=students.get(ID);//判断ID是否被占用,get返回的是value
   if(st==null) {
     System.out.println("请输入学生的姓名:");
     name=sc.next();
     Student stu=new Student(ID,name);
     students.put(ID, stu);
     System.out.println("已经添加成功第 "+students.get(ID).id+" 位学生"+students.get(ID).name);
     i++;
    } else{
     System.out.println("该ID已经被占用了,请重新输入:");
     continue;
    }
  }
 }

正在回答

4 回答

我运行了你的代码,没有出现你的问题,不过有个新问题,输入姓名的时候,光标如果不在最下面的空白处,程序无法运行,但也没有报错。http://img1.sycdn.imooc.com//5661540d00012fc202290220.jpg

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

Anneyth 提问者

可能是我的输入法原因吧!你说的问题,我也遇到过,光标在提示的后面输入也可以,但是通常默认光标是在提示前面,那样的话输入,程序就运行不了了,这是什么情况?
2015-12-05 回复 有任何疑惑可以回复我~

不科学

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

Anneyth 提问者

什么情况啊?
2015-12-01 回复 有任何疑惑可以回复我~

这是随机的 有时候正常,有时候不正常!

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

不科学!

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

举报

0/150
提交
取消

Map添加问题

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