hasNextInt不会返回false并退出循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hasNextInt不会返回false并退出循环相关的知识,希望对你有一定的参考价值。
我正在尝试将用户输入放入数组中,但hasNextInt()方法不会返回false并停止输入。
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
int target = in.nextInt();
while(in.hasNextInt()) {
weights.insert(in.nextInt());
}
recKnapSack(target, 0);
}
答案
当Scanner.hasNextInt()
在其缓冲区中遇到非整数字符时,它将返回false。但是,它可能会在读取提示时删除空格。所以Space+Enter
或Enter
很可能不会停止循环。但任何其他角色都会。
由于您要输入任意数量的整数,因此必须指示用户完成后输入的内容。事实上,如果你正在编写一个控制台应用程序,那么总是要解释为什么程序在等待输入是一个好主意。
任何非整数都将停止循环条件。在这种情况下,语法将按原样运行,用户只需要一些指令:
System.out.println("Please enter the target");
int target = in.nextInt();
System.out.println("Enter weights. Type 'X' to stop");
while(in.hasNextInt()) {
以上是关于hasNextInt不会返回false并退出循环的主要内容,如果未能解决你的问题,请参考以下文章
扫描仪 nextInt() 和 hasNextInt() 问题
如何在 while 循环中使用 .nextInt() 和 hasNextInt()