我正在编写一个计算机库存程序,允许用户从阵列中仅定义和显示一种计算机。目前,一台计算机中的一台计算机(例如,首先是一个阵列)被打印出来,但并不是所有特定型号的列表。
model = Console.askString("A or B ? ");
item = mlist.find(model);
if (item == null)
System.out.println("Cannot find " + model);
else
item.print("Laptop details...");
break;
答案 0 :(得分:2)
目前,一台计算机中的一台计算机(来自阵列的第一台计算机)被打印出来,但它并不是所有特定型号的列表。
这是因为break关键字。如果您的代码snipplet是从循环中获取的,break
将在if语句之后执行,然后将跳出循环并且不会打印整个数组。这将导致您所描述的行为,“首先打印数组”
model = Console.askString("A or B ? ");
item = mlist.find(model);
if (item == null)
System.out.println("Cannot find " + model);
else
item.print("Laptop details...");
break; // remove this
答案 1 :(得分:1)
如果mlist.find(model)
有这样的签名:
List<Computer> find(String filter);
并且它确实以List
返回,您应该将item
重命名为items
,然后您可以使用
for (Computer computer : items){
computer.print("Laptop details...");
}
当然,只有当您的计算机类具有print(String str)
方法时才会这样,但由于您已经获得了一些打印输出,我认为这是有效的。