Mag*_*nus 1 java console loops java.util.scanner
我有这个方法:
public String scanInput()
{
String input = "";
Scanner skanner = new Scanner(System.in);
while(skanner.hasNextLine()){
input = skanner.nextLine();
}
skanner.close();
return input;
}
Run Code Online (Sandbox Code Playgroud)
第一次运行此方法时,程序停止,并且在进行操作之前,系统会提示我在控制台中输入一个输入.但是,第二次运行该方法时,它会在没有暂停的情况下闪烁,并且我的程序陷入无限循环.
此方法中的哪一行使程序暂停,为什么它只在第一次暂停?
您正在接近方法结束时关闭扫描仪.这关闭了它正在处理的流 - System.in在这种情况下.这意味着下次调用方法时,流仍然关闭,因此没有行.
您应该设置一个 Scanner,并将其传递给方法(或在类中将其作为状态).