Java 用于循环跳过行?

Java 用于循环跳过行?,java,Java,我对Java还是有点陌生,如果这是一个愚蠢的问题,那么很抱歉。基本上,我在做一个比萨饼计划,所以当我和朋友一起点比萨饼时,它会计算出我们都欠了多少钱(例如,如果我们两个人吃了一个4美元的比萨饼,我们每人付2美元,然后加上我们自己的总额)。我决定创建一个新的对象类型“Person”和一个实际对象“people”。我把它做成一个数组,并将每个人作为数组的索引。到目前为止,我只想为每个人建立一个索引,并为每个人添加一个名字。然而,当我的循环第一次运行时,它跳过了生成第一个索引的行。下一个运行良好。我的

我对Java还是有点陌生,如果这是一个愚蠢的问题,那么很抱歉。基本上,我在做一个比萨饼计划,所以当我和朋友一起点比萨饼时,它会计算出我们都欠了多少钱(例如,如果我们两个人吃了一个4美元的比萨饼,我们每人付2美元,然后加上我们自己的总额)。我决定创建一个新的对象类型“Person”和一个实际对象“people”。我把它做成一个数组,并将每个人作为数组的索引。到目前为止,我只想为每个人建立一个索引,并为每个人添加一个名字。然而,当我的循环第一次运行时,它跳过了生成第一个索引的行。下一个运行良好。我的方法无效的原因和/或原因是什么

主要类别:

DecimalFormat f = new DecimalFormat("##.00");
Scanner scan = new Scanner(System.in);

double costItem;
int numPeopleIn;
Person[] people;
int y;

System.out.println("Welcome to Pizza Cost!\nTo start, how many people are in on this order?");

people = new Person[scan.nextInt()];

System.out.println("Type their names, pressing ENTER between names.");
for (int x = 0; x<people.length; x++) {
    System.out.println("ran");
    people[x] = new Person();
    people[x].name = scan.nextLine();
    System.out.println("hit the end");
}
先谢谢你,
-Chris

初始化阵列后,需要使用额外的新行

people = new Person[scan.nextInt()];
scan.nextLine(); // ignored

这是因为
nextInt()
只返回给您的人数(实际的
int
),然后按下
enter
,然后在
for
循环的第一次迭代中被扫描,从而干扰了您的程序。

@immibis执行此操作时,只添加了一个随机扫描。nextLine()在循环之前,它工作了。为什么会这样?另外,你建议我使用我现在正在做的数组方法吗?这很有效,非常感谢。你认为我的对象数组方法是有效的还是适合这个?适合简单的程序。稍后,您可以转到一个
列表
,该列表可以在循环中动态增长,也就是说,直到用户说“好的,不需要再添加任何人员…”,然后您就可以
循环中中断
people = new Person[scan.nextInt()];
scan.nextLine(); // ignored