3 回答
TA贡献1826条经验 获得超6个赞
不确定为什么 while 语句中的一个打印语句会更改整个输出
因为当该语句存在时,您正在使用扫描程序中的令牌。当它被注释掉时,你不是。消耗令牌的不是打印,而是对 的调用。next()
将其注释掉后,您的循环为:
while (word.hasNext()) {
words++;
}
hasNext()不会修改扫描仪的状态,因此,如果它进入循环体,它将永远循环。
如果要有一行,可以注释掉或不注释掉,请将代码更改为:
while (word.hasNext()) {
String next = word.next(); // Consume the word
System.out.println(next); // Comment this out if you want to
words++;
}
TA贡献1818条经验 获得超11个赞
通过使用,由于该方法,您将在集合中的元素之间循环。因此,直接调用将允许您在迭代中移动。System.out.println(word.next());next()next()
当注释掉时,将导致你永远循环(如果有一个单词),因为你将无法移动到下一个令牌。//System.out.println(word.next());word.hasNext()
以下代码段将帮助您实现所需的结果
while(word.hasNext()){
word.next();
words++;
}
添加回答
举报
