gpt4 book ai didi

java - 扫描仪内部方法不等待答案

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:51 24 4
gpt4 key购买 nike

为此纠结了一天,来回看了论坛,无果。任何人都可以告诉我为什么第二次调用函数 aMenu() 返回零而不是等待新的用户输入?我尝试了各种方法,例如 hasNextInt()、nextLine(),但没有任何效果。在用户写东西之前, hasNextInt() 不应该阻塞吗?我该如何解决这个问题?谢谢。

package FirstJavaPackage;
import java.util.Scanner;

public class testScanner
{
public static void main(String[] args)
{
int choice = aMenu();
System.out.println("You typed: "+choice);
choice = aMenu();
System.out.println("You typed: "+choice);
}

public static int aMenu()
{
int result = 0;
System.out.println("In aMenu... enter an int: ");
Scanner keyboard = new Scanner(System.in);
if (keyboard.hasNextInt())
result = keyboard.nextInt();
keyboard.close();
return result;
}
}

输出是:

在菜单...输入一个整数:2个您输入:2在 aMenu... 输入一个整数:您输入了:0

最佳答案

您需要在对 aMenu() 的调用中重复使用相同的 Scanner 对象:

public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int choice = aMenu(keyboard);
System.out.println("You typed: "+choice);
choice = aMenu(keyboard);
System.out.println("You typed: "+choice);
}

public static int aMenu(Scanner keyboard)
{
int result = 0;
System.out.println("In aMenu... enter an int: ");
result = keyboard.nextInt();
return result;
}

有关进一步讨论,请参阅 How to use multiple Scanner objects on System.in?

关于java - 扫描仪内部方法不等待答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15267017/

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