我对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");
}
人类:
package me.chris.pizzacost;
public class Person {
String name = "blank";
double cost;
}
非常感谢, -Chris
答案 0 :(得分:0)
初始化阵列后,您需要使用额外的新行
people = new Person[scan.nextInt()];
scan.nextLine(); // ignored
这是因为nextInt()
仅返回给您的人数(实际int
)并在其后面按下enter
,然后通过扫描对您的程序进行干扰for
循环的第一次迭代。