hasNextInt() 的 while 循环完成,但程序在其后不执行任何操作
所以我在这里有这个程序:
ArrayList<Integer> meh = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
System.out.print("Input 3 numbers: ");
while (sc.hasNextInt()) {
meh.add(sc.nextInt());
System.out.println("meeeeeep");
}
System.out.println("Goodbye");
输出(如果输入 3 个整数):
meeeeeep
meeeeeep
meeeeeep
它不会打印再见消息,也不执行我在其后面放置的任何操作。
So I have this program here:
ArrayList<Integer> meh = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
System.out.print("Input 3 numbers: ");
while (sc.hasNextInt()) {
meh.add(sc.nextInt());
System.out.println("meeeeeep");
}
System.out.println("Goodbye");
Output (if 3 integers are inputed):
meeeeeep
meeeeeep
meeeeeep
It doesn't print the goodbye message, or do anything that I put after it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为扫描仪正在等待即将到来的输入。
sc.hasNextInt()
正在等待下一个标记并确定它是否是 int。要解决此问题,请尝试按行读取并使用
String.split();
拆分" "
另一种解决方案可能是在 for 循环中执行此操作:
That's because the scanner is waiting for the coming input.
sc.hasNextInt()
is waiting for the next token and to determine if it is a int.To solve this, try reading by line and split on
" "
usingString.split();
Another solution might be to do this in a for loop: