为了账号安全,请及时绑定邮箱和手机立即绑定

如何使两个输入在同一个循环下工作?

如何使两个输入在同一个循环下工作?

慕尼黑5688855 2023-04-26 14:29:47
我正在尝试解决寻找具有 5 年以上经验的人的基本问题。但是代码不是那样运行的。这是为了在同一个 for 循环中运行两个用户输入命令:Scanner s = new Scanner(System.in);int n = s.nextInt();for (int i = 0; i <= n; i++) {    String name = s.nextLine();    System.out.println("enter experience");    int e = s.nextInt();    if (e > 5) {    } else {    }}预期结果是拥有 5 年以上经验的人数,但实际情况是代码仅要求输入经验。
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

你用的时候nextInt()直接回车对不对?实际发生的是 nextInt() 接受你的整数输入,你按下 enter,现在这个新行被消耗String name = s.nextLine();并且代码立即转到您的System.out.println("enter experience");


你应该做的只是简单地在循环中添加另一个 s.nextLine() 就像


Scanner s = new Scanner(System.in);

                int n = s.nextInt();

                String name = s.nextLine();


                for (int i = 0; i <= n; i++) {

                        s.nextLine(); // put this here 

                        System.out.println("enter name");

通过这种方式,您的新线路键将被这条新语句使用,您现在可以输入您的姓名。


查看完整回答
反对 回复 2023-04-26
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我想你要做的是比较用户注册后的经验年限。如果是这种情况,那么您需要将用户及其统计信息存储在某个地方,例如 HashMap 中,然后过滤该 HashMap。



查看完整回答
反对 回复 2023-04-26
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

试试这个代码:


Scanner s = new Scanner(System.in);

int n = Integer.parseInt(s.nextLine());


for (int i = 0; i <= n; i++) {

    String name = s.nextLine();

    System.out.println("enter experience");

    int e = Integer.parseInt(s.nextLine());


    if (e > 5) {


    } else {


    }

}


查看完整回答
反对 回复 2023-04-26
  • 3 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信