java - 满足条件时循环不关闭
问题描述
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,这是一个问题。
解决方案
你的代码没有做你想做的事。应该如何:每次迭代处理一个用户输入,如果它是“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);
}
推荐阅读
- django - Django 渲染
- python - Django 管理自定义
- python - 在熊猫时间序列中搜索缺少的时间戳?
- laravel - Laravel 中动态路由的返回重定向
- python - Django表单未在数据库中保存对象
- http - 为 LinkedIn API 配置到您的服务器的回调 URL
- linux - 有没有办法在 .bashrc 文件中的谷歌云 (GCP) 虚拟机实例中设置环境变量,就像我对其他虚拟机所做的那样?
- javascript - 将ajax中对象的某些属性从视图传递到控制器时出现错误500
- sql-server - 无法启动 Transact-SQL 调试器,无法连接到数据库引擎实例
- c++ - 在 for 循环中构造的对象是在它们各自的迭代之后还是在整个循环完成之后被破坏?