所以基本上这段代码应该继续询问“请插入有效数字”,直到通过键盘引入整数。它运作得很好,我只是好奇它实际上是如何做它的。
Scanner input = new Scanner(System.in);
System.out.println("Please insert the number of lives.");
while (!input.hasNextInt()) {
input.next();
System.out.println("Please insert a valid number.");
}
numberOfLives = input.nextInt();
在我看来,放置numberOfLives = input.nextInt()会更有意义; while循环内部的行。一旦它到达while循环,这基本上就是我从这个片段中理解的:
显然这不是它的方式,否则这个片段不起作用。我想也许每次检查条件时,实际的!input.hasNextInt()再次打开缓冲区进行输入,然后检查里面的内容,但我不知道。
很抱歉,如果我没有正确使用这些条款,那么现在就可以了解所有这些内容。
谢谢!
答案 0 :(得分:0)
与迭代器一样,扫描程序将始终在流启动之前指向该元素。即如果列表从位置0开始,扫描仪将指向第-1位置。 next()将使扫描仪前进并返回位置处的元素。 在这段代码中,我们检查下一个元素是否是整数。如果不是,为什么要推进扫描仪?