首页 > 解决方案 > 满足条件时循环不关闭

问题描述

    public void enroll() {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter course to enroll (Q to quit)");
        while(!in.nextLine().equals("Q")) {
            courses.add(in.nextLine());
        }
    }

该程序应该接受用户输入并将其添加到 ArrayList 课程中,直到用户输入“Q”,但实际上它似乎只是注册和添加所有其他输入。它还添加了 Q,这是一个问题。

标签: javawhile-loop

解决方案


你的代码没有做你想做的事。应该如何:每次迭代处理一个用户输入,如果它是“Q”,则退出。实际情况:每次迭代处理两次用户输入(因为您在条件部分和 while 正文中都调用了 in.nextLine()),如果第一个不是“Q”,则将第二个添加到列表中。

这是我的代码:

    Scanner in = new Scanner(System.in);
    System.out.println("Enter course to enroll (Q to quit)");
    String line;
    while(!(line = in.nextLine()).equals("Q")) {
        courses.add(line);
    }

推荐阅读