Du hast die Variablen nicht wirklich nach ihrer Funktion benannt.
Der Preis ist der Preis und der kann nicht geringer werden, nur weil ich dort Geld gebe.
Und das Wechselgeld kann ich auch nicht um den gegebenen Betrag erhöhen.
Auch wenn die Berechnung irgendwie funktioniert, so ist es doch sehr schwer nachzuvollziehen, weil man sich anhand der Begrifflichkeit durch den Code hangelt - vor allem, weil man den nicht selber geschrieben hat.
Aus Erfahrung kann ich dir schon mal sagen, dass es dir wahrscheinlich nach einer gewissen Zeit genauso ergehen wird.
Ich würde dir empfehlen die Variablen (oder besser Eigenschaften)
Preis
und
Gezahlt
zu nennen.
Die Bestimmung ob genug bezahlt worden ist lautet dann
if Gezahlt >= Preis then
und klingt irgendwie natürlicher