Hallo Guten Tag.
Nach langer verzweiflung, habe ich mich entschieden, mal hier im Forum zu fragen. Ich hoffe auf eure Hilfe. Das Problem ist folgendes:
Bin grad ein Fahrkartenautomaten Projekt am programmieren, und habe für das Wechselgeld eine kleine Methode programmiert, die so wenig Münzen wie möglich als Rückgeld aus dem Automaten spuckt. 10 Cent - 2 Euro Fächer haben jeweils eine Zähler Variable, die abgeändert werden können.
Außerdem habe 2 globale Variablen: Guthaben und Preis.
Preis ist der Preis von dem Ticket, und Guthaben ist die Menge des eingeworfenen Geldes.
Nun habe ich folgendes Problem. Die Methode wird beim Drucken Button aufgerufen.
Aber die while Schleife läuft nur 1x durch.
Wenn ich z.B 80 Cent Wechselgeld habe, werden im 50 Cent Fach nur 1x 50 Cent abgezogen, und bei 20 Cent und 10 Cent Fach ändert sich nichts.
Ich hoffe auf Hilfe.
MfG
Nach langer verzweiflung, habe ich mich entschieden, mal hier im Forum zu fragen. Ich hoffe auf eure Hilfe. Das Problem ist folgendes:
Bin grad ein Fahrkartenautomaten Projekt am programmieren, und habe für das Wechselgeld eine kleine Methode programmiert, die so wenig Münzen wie möglich als Rückgeld aus dem Automaten spuckt. 10 Cent - 2 Euro Fächer haben jeweils eine Zähler Variable, die abgeändert werden können.
Außerdem habe 2 globale Variablen: Guthaben und Preis.
Preis ist der Preis von dem Ticket, und Guthaben ist die Menge des eingeworfenen Geldes.
Nun habe ich folgendes Problem. Die Methode wird beim Drucken Button aufgerufen.
Aber die while Schleife läuft nur 1x durch.
Wenn ich z.B 80 Cent Wechselgeld habe, werden im 50 Cent Fach nur 1x 50 Cent abgezogen, und bei 20 Cent und 10 Cent Fach ändert sich nichts.
Java:
public void wechselGeld(double preis, double guthaben)
{
if (guthaben < preis)
{
label4.setText("Bitte Münzen in Betrag von " + preis + " einwerfen.");
}
else if (guthaben >= preis)
{
double diff = 0;
diff = guthaben - preis;
while (diff > 0)
{
if (diff > 2)
{
euro2--;
diff = diff - 2;
}
else if (diff >= 1)
{
euro1--;
diff = diff - 1;
}
else if (diff >= 0.5)
{
cent50--;
diff = diff - 0.5;
}
else if ( diff >= 0.2)
{
cent20--;
diff = diff - 0.2;
}
else if ( diff >= 0.1)
{
cent10--;
diff = diff - 0.1;
}
}
}
}
Ich hoffe auf Hilfe.
MfG