猿问

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

我正在尝试解决寻找具有 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 年以上经验的人数,但实际情况是代码仅要求输入经验。


慕尼黑5688855
浏览 143回答 3
3回答

墨色风雨

你用的时候nextInt()直接回车对不对?实际发生的是 nextInt() 接受你的整数输入,你按下 enter,现在这个新行被消耗String name = s.nextLine();并且代码立即转到您的System.out.println("enter experience");你应该做的只是简单地在循环中添加另一个 s.nextLine() 就像Scanner s = new Scanner(System.in);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int n = s.nextInt();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String name = s.nextLine();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i <= n; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.nextLine(); // put this here&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("enter name");通过这种方式,您的新线路键将被这条新语句使用,您现在可以输入您的姓名。

POPMUISE

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

红糖糍粑

试试这个代码:Scanner s = new Scanner(System.in);int n = Integer.parseInt(s.nextLine());for (int i = 0; i <= n; i++) {&nbsp; &nbsp; String name = s.nextLine();&nbsp; &nbsp; System.out.println("enter experience");&nbsp; &nbsp; int e = Integer.parseInt(s.nextLine());&nbsp; &nbsp; if (e > 5) {&nbsp; &nbsp; } else {&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答