gpt4 book ai didi

java - (Java) nextLine() 在运行时跳过,之前工作时

转载 作者:行者123 更新时间:2023-12-04 06:05:15 24 4
gpt4 key购买 nike

在我的 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 并按回车键,这会创建一个 '\n' 作为输入。
下一个调用:
in.nextLine(); 

继续读取 int 之后的其余行,该行为空,遇到 '\n' 并终止。

关于java - (Java) nextLine() 在运行时跳过,之前工作时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com