nextInt()后面紧跟nextLine()的小问题

身为初入IT的小白,这也是我第一次写博客。没有太多的高技术,就是希望学习当中遇到的小困难能与你分享,能与你成为学习上的小伙伴,共同讨论。如若不嫌弃本人愚钝,我们可以互相讨论在学习上遇到的困难。
下面说一下,在写课题的时候遇到的一个简单的问题!!!

 while(true) {
      System.out.println("进行学号/工号账号的登录--:");
      String name=input.nextLine();
      System.out.println("进行学号/工号密码的登录--:");
      String password=input.nextLine();
      System.out.println("进行身份的登录(辅导员/负责人/学生,分别为数字1,2,3):");
      int bank=input.nextInt();
      
      }

这段代码是我在写账号,密码验证的时候用到的。可能因为是我第一次上手写的原因,觉着这段代码没有毛病。但是当你的账号密码需要你再一次输入的时候,出现的是下面图片的问题。nextInt()后面紧跟nextLine()的小问题_第1张图片直接把需要在一次循环输入的 String name=input.nextLine();给忽略掉了,下面的String password=input.nextLine();是可以正常输入的,就单独的省略了String name给省略掉了。其实这个问题很简单,但是我确实琢磨了整整一个下午。很是痛苦,后来试验了很多次才发现,是因为当你输入int bank完后,会按下回车键,那么这个回车键就被再一次循环的
String name=input.nextLine();捕获到了。换个说法就是在你输入身份的时候,你输入"1“然后点击回车,是吧!那么1就被bank获取了,但是回车就被下一次的String name=input.nextLine(); 因为nextInt()不读取回车,所以就直接运行下一行代码了System.out.println(“进行学号/工号密码的登录–:”);,所以才会才出现图片上的问题。出现连续的两行。
怎么解决这个问题,就先提供两中解法吧。第一种:就是在int bank=input.nextInt();后面加上一行input.nextLine();把你的回车获取到后,就不会影响后面的代码了。第二种:就是把你的String name=input.nextLine();和String password=input.nextLine()都改成String name=input.next();这样也不会出错,因为next()跟nextLine()有些不同,就比如以上情况。就被回车给影响了。
一个很简单的问题,在明白之后才发现,这么简单,很是痛苦。希望我的文章可以帮助你,帮你减轻一些痛苦。古德拜!

你可能感兴趣的:(nextInt()后面紧跟nextLine()的小问题)