(Java)在运行时跳过了nextLine(),而之前正在工作

(Java)在运行时跳过了nextLine(),而之前正在工作,java,Java,在java程序的一部分中,我为用户读取了一系列输入 Scanner in = new Scanner(System.in); System.out.println(); System.out.print("Enter student name: "); String nameParameter = in.nextLine(); System.out.print("Enter student number: "); int studentNoParameter = in.nextInt(); Sy

在java程序的一部分中,我为用户读取了一系列输入

Scanner in = new Scanner(System.in);
System.out.println();
System.out.print("Enter student name: ");
String nameParameter = in.nextLine();
System.out.print("Enter student number: ");
int studentNoParameter = in.nextInt();
System.out.print("Enter subject: ");
String subjectParameter = in.nextLine();
System.out.print("Enter level: ");
int levelParameter = in.nextInt();
int[] resultsParameter;
resultsParameter = new int[3];
System.out.println("Enter results (0 if not taken yet)...");
System.out.print("First year: ");
resultsParameter[0] = in.nextInt();
System.out.print("Second year: ");
resultsParameter[1] = in.nextInt();
System.out.print("Third year: ");
resultsParameter[2] = in.nextInt();
System.out.println();
程序编译,但行:

String subjectParameter = in.nextLine();
在提示输入主题之后,在运行时似乎会跳过

我的输出不是:

输入主题:[用户输入]

输入级别:[用户输入]

结果是:

输入主题:输入级别:[用户输入]

下面的输入被分配给levelParameter,如果您输入的不是整数,则会产生错误,因此代码行似乎被跳过


我是一个java新手,我很困惑。我知道这最终会变得非常简单和愚蠢。提前感谢您抽出时间。

这是因为在读取int之后,该行的其余部分(为空)仍未读取,下一次调用read nextline()将读取空行

那么什么时候

int studentNoParameter = in.nextInt(); 
执行时,输入int并单击enter,这将创建一个“\n”作为输入。 下一个电话:

in.nextLine(); 

继续读取int后面的剩余行,int为空,它遇到“\n”并终止。

Oh!我懂了。我不知道nextInt和nextLine是这样工作的。谢谢你。你会欢迎:)只需再使用一个nextline()就可以乘坐空车了end@user1089092如果答案令人满意,那么接受答案是一个很好的姿态。这给了回答者更好的声誉,也会增加你将来得到答案的机会。对不起。这是我第一次使用这个网站,我没有立即注意到这个功能^^