我创建了一个简单的for循环来遍历ArrayList并向其中添加对象,但是当我进入我的第一个对象时,什么也没有发生。看起来程序没有继续循环。这就是我所拥有的:
for (int i = 0; i < (numPlayers.nextInt()-1); i++){
System.out.println("what is player " + (i + 1) + " name?");
Scanner namePlayer = new Scanner(System.in);
String playerName = namePlayer.nextLine();
playerList.add(new Player(playerName));
}
播放器对象构造函数也非常简单
public Player(String name) {
this.name = name
}
发布于 2018-10-11 02:57:45
public static void main(String[] args)
{
Scanner numPlayers = new Scanner(System.in);
ArrayList<Player> playerList = new ArrayList<>();
int input = numPlayers.nextInt();
for (int i = 0; i < input; i++){
System.out.println("what is player " + (i + 1) + " name?");
String playerName = numPlayers.next();
playerList.add(new Player(playerName));
}
}
您应该在for循环之外声明scanner
对象。代码的问题在于,每次接受字符串输入后,都需要您的代码为(int i = 0; i < (numPlayers.nextInt()-1); i++)
提供一个整数,这就是为什么如果您提供整数以外的任何值,它都会提供InputMismatchException
。因此,您必须在for循环之外初始化输入常量,否则执行将动态变化。
发布于 2018-10-11 02:55:05
如果可能,您只需要定义一次循环的限制:
int numberOfPlayers = numPlayers.nextInt()-1;
for (int i = 0; i < numberOfPlayers; i++){
System.out.println("what is player " + (i + 1) + " name?");
Scanner namePlayer = new Scanner(System.in);
String playerName = namePlayer.nextLine();
playerList.add(new Player(playerName));
}
您需要确保循环的迭代次数达到所需的次数。
https://stackoverflow.com/questions/52746750
复制相似问题