关于Java中Scanner使用的一些问题

    今天写作业,实现一个简单的学生管理系统,在控制台简单交互即可。我使用了Scanner来接受输入,我的写法模拟如下:

public static void main(String[] args) {
        while(true) {
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
            if(num==1) {
                System.out.print("请输入学生的学号:");
                String stuNum = scanner.nextLine();
                System.out.print("请输入学生的名字:");
                String stuName = scanner.nextLine();
            }
            else{
                break;
            }
        }
    }

    想法是输入数字,根据输入的数字选择不同的选项,该选项是想输出一句提示”请输入学生的学号:”,然后按提示输入学号,然后再输出一句提示”请输入学生的名字:”,再按提示输入名字,然而结果与我期望的不一样。结果如下图:这里写图片描述
    一开始没有弄明白,于是觉得可能是自己对Scanner的用法还不熟悉,长时间不用忘记了关键点,于是到网上去看别人是怎么写的,于是就改为下面这种写法:

public static void main(String[] args) {
        while(true) {
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
            if(num==1) {
                System.out.print("请输入学生的学号:");
                String stuNum = new Scanner(System.in).nextLine();
                System.out.print("请输入学生的名字:");
                String stuName = new Scanner(System.in).nextLine();
            }
            else{
                break;
            }
        }
    }

然后运行结果就正常了:
这里写图片描述
    后来在刚刚写这个博客的时候,突然就想到,会不会是因为我输入数字1按回车之后,这个回车被下面的nextLine()接收了:

if(num==1) {
        System.out.print("请输入学生的学号:");
        String stuNum = scanner.nextLine();

所以会有连续输出两条提示。不过也只是猜测,先记录下,日后有时间再研究。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值