Scanner用于扫描键盘,读取用户的键盘输入。

在一般使用赋值中,预先知道键盘输入的次数,从而可以通过for循环控制scanner扫描的次数。然而,当键盘输入次数不确定时,如何控制scan循环跳出,例如

实现计算四则运算式子的计算,计算式子由用户输入

Scanner scanner = new Scanner(System.in);
String str = null;
while(scanner.hasNext())
{
  str = scanner.next();
}

使用测试程序

Scanner s = new Scanner(System.in);
while (true)
{
  System.out.println("s.hasNext():"+s.hasNext());
      System.out.println("s.next():"+s.next().toString());
}

测试发现,当无输入时,程序阻塞;当输入空格时,程序阻塞;当只有输入ctr+z时,s.hasNext()才返回false,其余情况下均返回true。ctr+c时程序终止。