【发布时间】:2017-01-20 11:18:05
【问题描述】:
我有一个产品“零食”的 ArrayList,这些产品从文件中读取并存储在此 ArrayList 中,显示它们的代码、名称、价格。 使用此代码,命名为 selectProduct() 方法:
public void selectProduct() {
loadProducts();
System.out.println("Insert product code");
Scanner keyboard = new Scanner(System.in);
for(Snack s : arraysnack){
if(keyboard.next().equals(s.code))
System.out.println("Product found");
else
System.out.println("Product NOT found");
break;
}
它们的 ArrayList 是从方法“loadProducts”正确填充的,但是当我尝试提供代码输入时,如果它遵循存储的元素顺序,它会正确打印,否则它将跳过并且当我到达时 foreach 循环会自动中断最后一个产品。 例如,数组填充如下(代码,名称,价格)
PATA1 san carlo 0.4
PATA2 chipsters 0.35
KIND1 kinder 0.75
KIND2 kinder 0.5
KIND3 hippo 0.25
MARS1 mars 0.8
如果我按顺序输入代码,它会给出正确的输出(但总是在 6 次迭代后结束),但如果我跳过第一个,只有当我输入第二个时,输出才会给出“产品查找”... 如果我打印存储在 arraylist 中的 6 个代码之一,我想要一个“产品查找”输出,如果订单不被遵守,并且我想迭代超过 6 次(因为只有 6 个产品)。
【问题讨论】:
-
找到产品后您应该
break。而且您在每次迭代中都在寻找新产品。