我的问题是,当我运行程序时,它运行所有System.out.print,但是当我运行时 它对于第二个学生来说有些重叠如下:
"Enter the second student's name: Enter the student's score: "
而不是
"Enter the second students's name: "
"Enter the student's score: "
我也无法将数据输入到第二个学生的System.out.print方法
我的主要代码错误是:
System.out.print("Enter the first student's name: ");
name = reader.nextLine();
student1.setName(name);
for (int i = 1; i <= 3; i++){
System.out.print("Enter the students's score: ");
score = reader.nextInt();
student1.setScore(i, score);
}
System.out.print("Enter the second student's name: "); //overlaps(stays on same line)
//also wont let me enter data here
name = reader.nextLine();
student2.setName(name);
for (int i = 1; i <= 3; i++){
System.out.print("Enter the students's score: "); //program skips to here to input
//data
score = reader.nextInt();
student2.setScore(i, score);
}
处理类中错误的部分如下
public void setName(String nm){
name = nm;
}
答案 0 :(得分:3)
阅读输入后,您应该调用println()
打印换行符。
答案 1 :(得分:3)
如果“重叠”表示它们出现在同一行,那么您需要System.out.println
,而不是System.out.print
。 println
会发出一个尾随换行符。
答案 2 :(得分:2)
你能更清楚地描述这种“重叠”吗?在您的原始问题中,“一对一”是相同的。如果需要保留间距等,请将其设为代码示例,
答案 3 :(得分:2)
我相信你在谈论如何在同一条线上打印所有线条。您需要在Java中使用换行符'\ n',或使用System.out.println
答案 4 :(得分:0)
尝试插入:
reader.nextLine();
...前
System.out.print("Enter the second student's name: ");
.nextInt()
不会从输入中吞下换行符,因此下一次调用nextLine()
只会获取换行符并返回一个空字符串 - 然后程序继续,打印下一行输出
答案 5 :(得分:0)
如果我理解的是对的,那么你可能会对java控制台的输入有问题。我不能说太多,因为没有足够的信息,但也许您可以在java控制台中引用此链接获取输入:http://www.abbeyworkshop.com/howto/java/readLine/index.html
我建议清除未受影响的代码(关于班级学生),只需检查输入&amp;仅从控制台输出。