Java hasNextInt不会返回false并退出循环
我试图将用户输入放入数组,但hasNextInt方法不会返回false并停止输入Java hasNextInt不会返回false并退出循环,java,input,Java,Input,我试图将用户输入放入数组,但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); }
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。
但是,在读取提示时,它可能会去掉空白。因此,空格+回车或回车很可能不会停止循环。但任何其他角色都会
由于您希望输入任意数量的int,因此必须指示用户在完成输入时键入什么。事实上,如果您正在编写一个控制台应用程序,最好总是解释为什么程序在等待输入
任何非整数都将停止循环条件。在这种情况下,语法将按原样工作,用户只需要一些说明:
System.out.println("Please enter the target");
int target = in.nextInt();
System.out.println("Enter weights. Type 'X' to stop");
while(in.hasNextInt()) {
您是否正在关闭stdin,例如使用ctrl-d?如果不是,它怎么知道将来某个时候不会有int呢?你是如何运行代码的?如果你从用户那里得到输入,那么总是会有下一个int。你希望它什么时候返回false?在什么情况下?我的意思是,很容易让它返回错误。只需键入任何不是整数值的内容。示例:q,x,Foo,立即停止!!!,!@$%^&*。。。我要做的是输入任意数量的int。我是否必须指定要输入多少个int,或者是否有方法写入循环,以便在用户停止输入int时停止输入。什么表示用户已停止输入int?