1. 通俗理解:
方法 | 作用 |
---|---|
hasNext() | 检测还有没有下一个输入 |
next() | 指针移动到当前下标,并取出下一个输入 |
(扩展:那什么是 hasNextLine()和nextLine()呢?)
2. 应用场景:
show me your code:
public class demo2
{
public static void main(String[] args)
{
System.out.println("请输入若干单词,以空格作为分隔");
Scanner sc = new Scanner(System.in); //键盘输入
while(sc.hasNext()) //调用 hasNext 方法
{
System.out.println("键盘输入的内容是:" + sc.next()); // 调用 next 方法
}
}
}
Console:
3.代码为什么是这样执行?
运行过程:
当执行到hasNext()时,它会先扫描缓冲区中是否有字符,有则返回true,继续扫描。直到扫描为空,这时并不返回false,而是将方法阻塞,等待你输入内容然后继续扫描 。后台会开了一块内存,一直未关闭,不算死循环。
4.如何关闭输入?
修改循环条件 while(!sc.hasNext("#")) , //匹配#返回true,然后取非运算。遇到# ,返回false
code:
console: