You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中for循环结合Scanner输入时跳过输入问题求助

解决Java循环中跳过姓名输入的问题

嘿,我一眼就看出问题出在哪了——nextInt()方法不会读取输入结束后的换行符!

你第一次循环输入年龄后按下回车,这个换行符会留在输入缓冲区里。第二次循环执行input.nextLine()读取姓名时,它直接把这个残留的换行符当成了输入内容,所以看起来像是跳过了姓名输入,直接进入性别环节。

给你两个简单的解决方案:

方案1:在nextInt()后额外调用一次nextLine()吃掉换行符

修改你的循环代码,每次读取完年龄后,加一行input.nextLine()来清除缓冲区里的换行:

class MID {
    public static void main(String args[]) {
        person [] persons= new person[3];
        Scanner input= new Scanner(System.in);
        for (int i = 0; i <=2 ; i++) {
            persons[i]= new person();
            System.out.println(" Please enter the name of person " + (i+1));
            persons[i].P_name = input.nextLine();
            System.out.println(" sex of person" + (i+1));
            persons [i].P_sex= input.nextLine();
            System.out.println(" age of person" + (i+1));
            persons[i].P_age =input.nextInt();
            // 新增这行,吃掉nextInt()留下的换行符
            input.nextLine();
        }
        // 调用P_data()方法输出测试
        for(person p : persons) {
            p.P_data();
        }
    }
}

方案2:统一用nextLine()读取所有输入,再把年龄字符串转为int

这种方法可以完全避免缓冲区残留问题,输入处理更统一:

class MID {
    public static void main(String args[]) {
        person [] persons= new person[3];
        Scanner input= new Scanner(System.in);
        for (int i = 0; i <=2 ; i++) {
            persons[i]= new person();
            System.out.println(" Please enter the name of person " + (i+1));
            persons[i].P_name = input.nextLine();
            System.out.println(" sex of person" + (i+1));
            persons [i].P_sex= input.nextLine();
            System.out.println(" age of person" + (i+1));
            // 先读取年龄字符串,再转为int类型
            String ageStr = input.nextLine();
            persons[i].P_age = Integer.parseInt(ageStr);
        }
        // 调用P_data()方法输出测试
        for(person p : persons) {
            p.P_data();
        }
    }
}

另外提个小建议:Java的类名规范是首字母大写,所以person类建议改成Person,成员变量名也尽量用小驼峰命名法(比如pName代替P_name),这样代码更符合行业规范哦~

内容的提问来源于stack exchange,提问作者Bereket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:33:13