已经为此苦苦挣扎了一天,来回阅读论坛,没有结果。任何人都可以告诉我为什么函数 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;
}
}
输出是:
在 aMenu... 中输入一个整数:2 您输入:2 在 aMenu... 输入一个整数:您输入:0