问答详情
源自:7-1 简易扑克牌游戏

请问下面的代码,为什么不会提示id重复?跪求解答

public void createPlayer()  {

System.out.println("------------------创建玩家---------------------");

Integer id;

String name;

int i=0;

for(int j=0;j<2;j++) {

while(true) {

try{

System.out.println("请输入第"+(i+1)+"个玩家的id:");

id=dllx.nextInt();

if(player.contains(new Players(id,null))){

System.out.println("你输入的id已被使用!请重新输入!");

continue;

}

break;

} catch (Exception  e) {

System.out.println("你的输入有误,请重新输入!");

dllx=new Scanner(System.in);

continue;

}

}

while(true){

System.out.println("请输入第"+(i+1)+"个玩家的姓名:");

name =dllx.next();

if(player.contains(new Players(id,name))) {

System.out.println("你输入的名字已被使用!请重新输入!");

continue;

}

break;

}

player.add( new Players(id,name));

i++;

}

}


提问者:Lx_21 2018-06-08 09:39

个回答

  • ______1________
    2018-06-13 14:22:56

    简单看了一下,还没调试,在分别判断名字或者id的时候,比较一个对象就可以了, 你方法中好像是传入了2个对象。。。

    if(player.contains(new Players(id,null))){

    System.out.println("你输入的id已被使用!请重新输入!");

    continue;

    你仔细梳理下这个逻辑。。。

  • ______1________
    2018-06-13 14:20:04

    你说不会提示用户名相同的话,那就是 contains()方法有问题吧。 你仔细调试下。。。