首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java不会继续循环

Java不会继续循环
EN

Stack Overflow用户
提问于 2018-10-11 02:37:09
回答 2查看 47关注 0票数 -4

我创建了一个简单的for循环来遍历ArrayList并向其中添加对象,但是当我进入我的第一个对象时,什么也没有发生。看起来程序没有继续循环。这就是我所拥有的:

代码语言:javascript
复制
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));
}

播放器对象构造函数也非常简单

代码语言:javascript
复制
public Player(String name) {
    this.name = name
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-11 02:57:45

代码语言:javascript
复制
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循环之外初始化输入常量,否则执行将动态变化。

票数 0
EN

Stack Overflow用户

发布于 2018-10-11 02:55:05

如果可能,您只需要定义一次循环的限制:

代码语言:javascript
复制
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));
}

您需要确保循环的迭代次数达到所需的次数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52746750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档