System.out.print重叠问题为什么?

时间:2010-12-21 03:37:48

标签: java

我的问题是,当我运行程序时,它运行所有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;
}

6 个答案:

答案 0 :(得分:3)

阅读输入后,您应该调用println()打印换行符。

答案 1 :(得分:3)

如果“重叠”表示它们出现在同一行,那么您需要System.out.println,而不是System.out.printprintln会发出一个尾随换行符。

答案 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;仅从控制台输出。