Java扫描器不会等待用户输入
这个问题在这里已经有了答案:
您可能以前调用过像nextInt()
这样的方法。 因此一个这样的程序:
Scanner scanner = new Scanner(System.in);
int pos = scanner.nextInt();
System.out.print("X: ");
String x = scanner.nextLine();
System.out.print("Y: ");
String y = scanner.nextLine();
展示你所看到的行为。
问题是nextInt()
不会消耗'n'
,所以nextLine()
的下一次调用会消耗它,然后等待读取y
的输入。
在调用nextLine()
之前,您需要使用'n'
。
System.out.print("X: ");
scanner.nextLine(); //throw away the n not consumed by nextInt()
x = scanner.nextLine();
System.out.print("Y: ");
y = scanner.nextLine();
(实际上更好的方法是在nextInt()
之后直接调用nextLine()
)。
只要为你的代码尝试这个构造构造:
System.out.print("X: ");
scanner.nextLine();
x = scanner.nextLine();
System.out.print("Y: ");
scanner.nextLine();
y = scanner.nextLine();
链接地址: http://www.djcxy.com/p/96069.html
上一篇: Java Scanner doesn't wait for user input
下一篇: Both next() and nextLine() not helping to store name with spacing