gpt4 book ai didi

java - scanner.hasNext() 导致无限循环

转载 作者:行者123 更新时间:2023-11-29 05:37:06 24 4
gpt4 key购买 nike

我有一段代码应该逐字读取输入并将单词的长度递归地添加到 ArrayList(用于学校练习)。

我写了这个方法:

ArrayList<Integer> wordLengths = new ArrayList<Integer>();
Scanner scanner = new Scanner(System.in);
// ...
private void readWords() {
// read a word, if there are more words, read the next word
this.wordLengths.add(this.scanner.next().length());

if (this.scanner.hasNext()) {
readWords();
}
}

当我调用这个方法时,它一直在询问新词。它不会停止(递归)循环。为什么会这样? this.scanner.hasNext() 只有在输入中有下一个词时才应为真,因此当没有其他词时它应该停止。

最佳答案

System.in是一个输入流。它永远不会关闭,所以对于 #hasNext() 它将始终返回 true

关于java - scanner.hasNext() 导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19101776/

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