不懂:当Scanner scanner = new Scanner(System.in);在循环之外,当id输入字符串,程序会陷入死循环,当把Scanner scanner = new Scanner(System.in);放在循环之内就没问题了。应该是try catch的时候把scanner怎样了-->应该是 scanner需要一个变量接受它的输入,现在没接收成功,scanner不会让你再继续输入,而且一直在接收那个错误的字符串,一直在发生错误,造成了死循环。
for(int i = 0;i<num;i++){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个玩家的ID和姓名");
System.out.println("请输入ID:");
int ID = 0;
try {
ID = scanner.nextInt();
System.out.println("请输入姓名:");
String name = scanner.next();
Player player = new Player(ID, name);
players.add(player);
} catch (Exception e) {
// TODO: handle exception
System.out.println("------请输入正确的整型数字!------");
i--;
continue;
// throw e;
}
}