Ich habe eine ArrayList von Produkten "Snacks", die aus einer Datei gelesen und in dieser ArrayList gespeichert werden und ihre CODES, NAMES, PREICES anzeigen. mit diesem Code, mit dem Namen Select() -Methode:Foreach-Schleife funktioniert nur, um Elemente in ArrayList zu speichern
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;
}
Sie Arraylist korrekt von der Methode „Loadproducts“ bevölkerte, aber wenn ich versuche, eine Code-Eingabe zu geben, wenn es um die Reihenfolge der Elemente gespeichert folgt druckt richtig, sonst wird es übersprungen und die foreach-Schleife bricht automatisch, wenn ich das letzte Produkt erreiche. für Beispiel des Array wie dieser (Code, Name, Preis) bevölkert ist
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
Wenn ich den Code, um Typen gibt es eine korrekte Ausgabe (aber immer nach 6 Iterationen enden), aber wenn ich die ersten überspringe , die Ausgabe gibt "Produktfund" nur, wenn ich die zweite ... eintippe Ich möchte eine "Produktfund" Ausgabe, wenn ich einen der 6 Codes speichere, die in der arraylist gespeichert werden, auch wenn die Bestellung nicht respektiert wird, und ich will iterieren mehr als 6 mal (weil es nur 6 Produkte gibt).
Sie sollten "brechen", wenn das Produkt gefunden wird. Und Sie suchen bei jeder Iteration nach einem neuen Produkt. – shmosel