Servus,
in einer Übungsaufgabe sollen wir eine kleine Artikelverwaltung schreiben.
Programmieren Sie eine Erfassungsmaske (in der Konsole/Command-Line), welche es dem Benutzer erlaubt, beliebig viele Artikel in die Artikelliste hinzuzufügen. Möchte der Benutzer keine weiteren Artikel mehr hinzufügen, gibt das Programm eine Liste aller erfassten Artikel (mit Bezeichnung, Artikelnummer, Preis, Währung und Farbe) aus.
Ich wollte diese Zusatzaufgabe mit einer do-while Schleife lösen. Nur erhalte ich dann jedesmal die selbe ausgabe, da die Werte aller Objekte überschrieben werden. Wie stelle ich es an, dass in jedem Schleifendurchlauf, eigene Werte für das jeweilige Objekt gesetzt werden?
Mein Code:
wenn ich die Schleife z.B. 3* durchlaufe und 3 verschiedene Werte für den Preis eingebe, wird zum Schluss 3* der Wert ausgegeben, den ich als letztes eingegeben habe.
Mir ist schon klar, warum das so ist, aber nicht wie ich das ändern kann.
Danke
in einer Übungsaufgabe sollen wir eine kleine Artikelverwaltung schreiben.
Programmieren Sie eine Erfassungsmaske (in der Konsole/Command-Line), welche es dem Benutzer erlaubt, beliebig viele Artikel in die Artikelliste hinzuzufügen. Möchte der Benutzer keine weiteren Artikel mehr hinzufügen, gibt das Programm eine Liste aller erfassten Artikel (mit Bezeichnung, Artikelnummer, Preis, Währung und Farbe) aus.
Ich wollte diese Zusatzaufgabe mit einer do-while Schleife lösen. Nur erhalte ich dann jedesmal die selbe ausgabe, da die Werte aller Objekte überschrieben werden. Wie stelle ich es an, dass in jedem Schleifendurchlauf, eigene Werte für das jeweilige Objekt gesetzt werden?
Mein Code:
Java:
do{
Artikel art = new Artikel();
System.out.print("Geben Sie eine Artikelnummer ein");
Scanner sca = new Scanner(System.in);
int artnr =sca.nextInt();
art.setArtNr(artnr);
System.out.println("Artikelbeschreibung eingeben");
String descrip = sca.next();
art.setDescription(descrip);
System.out.println("Artikelpreis eingeben: ");
int artPreis = sca.nextInt();
art.setWert(artPreis);
System.out.println("Währung eingeben: ");
String währung=sca.next();
art.setWährung(währung);
lstArtikel.add(art);
System.out.println("Wollen Sie noch einen Artikel eingeben? (JA=1, NEIN=0)");
Scanner sc = new Scanner(System.in);
eingabe = sc.nextInt();
if(eingabe==0){
for(Artikel current: lstArtikel){
System.out.println("Preis: "+ art.getWert());
}
}
}while(eingabe==1)
wenn ich die Schleife z.B. 3* durchlaufe und 3 verschiedene Werte für den Preis eingebe, wird zum Schluss 3* der Wert ausgegeben, den ich als letztes eingegeben habe.
Mir ist schon klar, warum das so ist, aber nicht wie ich das ändern kann.
Danke
Zuletzt bearbeitet von einem Moderator: