关于next输入 实战补充

在Java编程中遇到一个输入问题,当使用nextInt读取年龄后,nextLine无法获取地址,原因是nextInt并未读取换行符,导致nextLine直接跳过。解决方案是将nextInt改为next,或者先读取一行再处理数字输入。
摘要由CSDN通过智能技术生成

今天刚开始动手做一个小小的项目就遇到了问题,一开始觉得有点懵,问过老师后才明白些。
看看有问题的代码

     	System.out.println("请输入学生的年龄:");
        Integer stuAge = sc.nextInt();
        System.out.println("请输入学生居住的地址:");
        String stuAddress = sc.nextLine();

按道理来说,会出现让人输入两次的结果。
结果一运行发现

请输入学生的年龄:
22
请输入学生居住的地址:
新增完成!

当时就有点懵了,怎么被吞掉了一个啊。
但是我如果把原代码的两个输入的位置调换一下,调换成下面的就可以正常输入了

		System.out.println("请输入学生居住的地址:");
        String stuAddress = sc.nextLine();
        System.out.println("请输入学生的年龄:");
        Integer stuAge = sc.nextInt();

虽然问题是解决了,但是错误的原因一直让我想知道知道。
后面我问了一下我的老师,她开始说,可以让代码改成下面

		System.out.println("请输入学生的年龄:");
        Integer stuAge = sc.nextInt();
        System.out.println("请输入学生居住的地址:");
        String stuAddress = sc.next();

也就是把nextLine()改成next()就也可以正常输入了 ,再结合之前博客http://t.csdn.cn/tHkzs 才知道nextInt只能取数字,回车键取不到,被nextLine直接取到,结束,这就是问题所在。
问题解决了,记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值