Ja, wie gesagt, ich hab schon immer Probleme damit meine Gedanken in vernünftige Sätze zu packen ;-)
Ich kann ja mal versuchen den Schleifendurchlauf mit meinen Worten durchzugehen.
Erster Artikel wird aus Datenbank gelesen mit den drei Variablen Teil, Zustand und Preis.
Der Rabatt wird auf 0 gesetzt und wir gehen jetzt in die Schleife.
Zuerst wird überprüft ob der Zustand größer gleich 2 ist. Da Artikel a den Zustand 1 hat werden alle Anweisungen mit nein quittiert und der Verkaufspreis ist nach Berechnung auch der Preis des Artikels, da kein Rabatt abgezogen worden ist. Dies wird ausgegeben
Dann wird der zweite Artikel eingelesen der in Zustand 4 ist. Der Rabatt steht zu diesem Zeitpunkt noch auf 0. Die erste Anweisung wird aufgerufen, der Rabatt ändert sich auf 5. Die zweite Anweisung wird aufgerufen, der Rabatt ändert sich wieder, aber dieses mal auf 10. Die dritte Anweisung wird dann aber mit einem nein guittiert. Dann wird der Verkaufspreis berechnet und durch die Berechnung kommt ein Verkaufspreis von 90 raus.
Der Artikel c wird eingelesen, und da im Schleifenanfang der Rabatt nicht wieder auf 0 zurückgesetzt wird steht der Rabatt noch auf 10. Alle Anweisungen werden wieder mit einem nein quittiert. ABer da noch der Rabatt auf 10 steht, vom vorigen Artikel, wird dieser Rabatt gewährt und der Verkaufspreis mindert sich um die 10%.
Beim vierten und letzten Artikel d steht anfänglich der Rabatt auch auf 10%. Aber über die erste Anweisung wird er wieder auf 5% gesetzt und mit diesem Rabattwert wird gerechnet. Was zu einem Ergebnis von 76 führt, welches dann auch ausgegeben wird.
Ich hoffe ich konnte mich halbwegs klar ausdrücken.