"Getränkeautomat" mit Java Programmieren
Hallo Leute ich möchte mit Java einen Getränkeautomaten Programmieren. Jetzt hab ich eine Methode Wasser_kaufen, in BlueJ sieht sie folgendermaßen aus:
public void WasserKaufen(){
Wasser=Wasser-1;
}
Im Automaten ist aber nur Platz für 10 Flaschen Wasser. Wenn ich aber diese Methode verwende dann kann man ja mehr kaufen! Also mein versuch das Problem zu beheben: eine if-Bedingung. Sieht bei mir folgendermaßen aus:
public void WasserKaufen(){
Wasser=Wasser-1;
if (Wasser=0)// meine Idee: wenn bei Wasser bereits nichts mehr drin ist,
{Wasser=0;// kann nichts mehr gekauft werden. Toll wäre auch noch eine Meldung wie Wasser leer
}
}
Dann kommt allerdings von BlueJ die Fehlermeldung: incompatible types
Wie kann ich diesen Fehler beheben so, dass nicht mehr als 10 Flaschen gekauft werden können. Danke schon mal für eure Antworten nummer100
2 Antworten
Ich würde sagen: Wenn Wasser größer als 0 ist, dann wird Wasser--; gerechnet. Somit kann man nur Wasser kaufen, bis du auf 0 bist. Danach kann die Funktion nichtmehr aufgerufen werden. Haste eig. schon definiert, wieviel Wasser drin ist?
Beispiel:
if (Wasser > 10) {Wasser--;} else {System.out.println("Kein Wasser mehr da");}
Ich weiß grad nicht, ob die Syntax 100%ig stimmt (lange nichtmehr in Java programmiert), aber so stelle ich mir die if-Funktion vor. Wie das in BlueJ aussieht, kann ich leider nicht sagen.
Die Fehlermeldung kann man aus dem gezeigten Code nicht ableiten.
Was aber schonmal ein Fehler ist, ist deine if-Bedingung. Ein einfaches Gleichheitszeichen ist immer eine Zuweisung, einen Vergleich führt man mit einem doppelten Gleichheitszeichen durch. Du setzt in den Klammern der if-Anweisung Wasser auf den Wert 0, was zu false ausgewertet wird und damit werden die Anweisungen im Block nicht ausgeführt.