话不多说直接上图
通过图片可以看到,控制台直接跳过了一次输入,进入了下一个输入,什么原因呢?问题就出现在
使用nextLine()接受数据上。下面是使用debug,调试出来的图
我们发现接收到的s值为"",也就是“空字符”。scanner在扫描的过程中,结束扫描的依据是扫描到一
个空白字符。所以scanner扫描器扫到的数据是:数据+""。而nextInt只会取走数据,留下了""。而
nextLine()读取一行数据结束的依据是读到一个空白字符(如 ""),所以nextLine()不需要控制
台输入,直接获得了一个""。所以直接跳过了这一次的输入,进入了下一次输入。