-8

我正在编写一个计算机库存程序,该程序允许用户仅定义和显示数组中的一种计算机。目前,阵列中的一台计算机(首先来自阵列)被打印,但它并没有全部列出特定型号。

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;
4

2 回答 2

2

目前,阵列中的一台计算机(阵列中的 eifirst)已打印,但并非所有特定型号的列表。

这是因为 break 关键字。如果您的代码片段是从循环中获取的,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
于 2013-05-06T13:11:12.930 回答
1

如果mlist.find(model)有这样的签名:

List<Computer> find(String filter);

并且它确实返回一个List你应该重命名itemitems然后你可以循环这些

for (Computer computer : items){
  computer.print("Laptop details...");
}

当然,只有在您的 Computer 类有print(String str)方法的情况下,但由于您已经获得了一些打印输出,我认为这是可行的。

于 2013-05-06T13:14:14.637 回答