创建可动态添加元素的ArrayList遇问题:无法打印元素、输入受限
问题解决
问题原因分析
- 无法打印ArrayList元素:你的打印语句写在
while(true)死循环之后,这个循环没有终止条件会一直运行,导致后续的打印代码永远不会被执行。 - 无法控制输入终止:当前代码是无限循环接收输入,但没有提供退出方式,你无法主动停止输入流程去查看已添加的元素,并非真的只能输入一个元素。
修改后的代码
import java.util.ArrayList; import java.util.Scanner; public class GroceryList { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<String> shopList = new ArrayList<>(); System.out.println("输入商品名添加到列表,输入\"quit\"结束输入并查看列表:"); while (true) { System.out.print("Enter an item: "); String item = sc.nextLine(); // 设置退出条件,输入quit时终止循环 if ("quit".equalsIgnoreCase(item)) { break; } shopList.add(item); } System.out.println("The Grocery List: " + shopList); sc.close(); } }
关键修改点
- 添加了退出条件:当输入
quit(不区分大小写)时,通过break终止循环,程序会执行后续的打印语句。 - 调整了提示信息,让用户明确知道如何结束输入流程。
- 确保打印语句在循环终止后执行,能正常输出已添加的列表元素。
内容的提问来源于stack exchange,提问作者Nelly
相关产品推荐
相关产品推荐

