gpt4 book ai didi

java - Java新手。在 while 循环中使用扫描仪类时出错?

转载 作者:行者123 更新时间:2023-11-30 07:23:08 25 4
gpt4 key购买 nike

因此,我的第一项任务是制作一个简单的问答程序。用户提出问题,我生成答案。我以前从未做过java。这是我的输入类:

//msg is the msg I output (answer to their question).
//Function returns inputStr which is the question the user asks.
public String getInput(String msg) {
System.out.println(msg);
Scanner theInput = new Scanner(System.in);
String inputStr = theInput.nextLine(); //ERROR HERE ON 2nd ITERATION!
theInput.close();
if (inputStr.equals("exit")) {
System.out.println("GoodBye!");
System.exit(0);
}
return inputStr;
}

在while循环中调用this的函数如下:

    //inputSource is an object that has the getInput method. It is an argument for this function.
String userQuestion = inputSource.getInput(firstLine);
String initMsg = processMessage(userQuestion);
while(!initMsg.equalsIgnoreCase("GoodBye")){
userQuestion = inputSource.getInput(initMsg);
//Doesn't get to here.
initMsg = processMessage(userQuestion);
}
System.out.println(initMsg);

错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)

所以基本上,发生的事情是它问了一次问题,然后给出了一次答案,但是当它进入 while 循环时,它会卡在指示的点上。帮助不大。谢谢。

最佳答案

我注意到一件事:您可能不应该在扫描仪上调用 close()。根据 JavaDocs,您正在关闭底层输入流(标准输入) .

关于java - Java新手。在 while 循环中使用扫描仪类时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200299/

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