Scanne第二次输入跳过问题

问题

  • 源码

在这里插入图片描述

  • 输出样式

在这里插入图片描述

  • 问题所在:第一次输入整数是正常的,如果输入的是小数它就会变成输出结果这张图片这样,会直接跳过让你输出小数

解决

  • 在输入小数之前补充这一句代码

  • scanner.nextLine();
    
  • 原因:next的方法基本上都存在这个问题,就拿代码的nextInt说,如果我输入了小数,他nextInt只会读取到整数的地方,点和后面的小数是还存在管道中的,没有及时清理,如果下次输入它就会提取你上次剩下的,从而导致代码错乱

  • scanner.nextLine的作用就是把上次残留的先取出来,这样就可以保证下次提取的是输入完整的

  • nextDouble,nextLine都存在这类似的问题,如果是nextLine也可以换成next试试

补充:感谢大佬提供的文章和狂神的学习地址(我写的可能不明了不清楚,可以看一下大佬的文章)

https://blog.csdn.net/ONEMORE6499/article/details/105430680/

https://www.kuangstudy.com/

吐槽一下这个Scanner真无语!多谢大佬

Guess you like

Origin blog.csdn.net/lufeia/article/details/120547081