Der Java Kaffeevollautomat

toffelwurst

Grünschnabel
Hallo,
Aufgabe war es das Prinzip eines einfachen Kaffeevollautomaten in Java zu pogrammieren indem man mit booleschen Methoden überprüft ob Wasser und Bohnen vorhanden sind und der Kaffeesatzbehälter nicht voll ist. Anschliesend soll eine boolesche Methode den Kaffee produzieren und dabei die ergebnisse der 3 vorangegangenen berücksichtigen. Abschließend kommt eine Main Methode dazu, die die gewünschte Tassenzahl , den aktuellen Wasser und Bohnen abfragt und den Inhalt des Satzbehälter auf 0 setzt (10 wäre voll).

Ich bin noch blutiger Anfänger und hab mir auch schon was gebastelt, nur gibt er mir immer nur false aus anstatt mir Kaffee zu machen, deshalb wende ich mich an euch ich verzweifel grad.

Java:
public class Kaffee
{
    int[] res = new int[3];
    boolean[] check = new boolean[3];
    public void main(String[] args)
    {
        Out.println("Gewünschte Menge Kaffee in Tassen eingeben");
        int tasse = In.readInt();
        Out.println("Aktuelle Wassermenge eingeben");
        res [0] = In.readInt();
        Out.println("Aktuelle Bohnenmenge eingeben");
        res [1] = In.readInt();
        res [2] = 0;
        
        while(tasse > 0)
        {
            Out.println(macheKaffee());
            tasse--;
        }
    }
    
    public boolean Wasser()
    {
        if(res [0]> 0)
        {
            return check[0] = true;
        }
        else
        {
            Out.println("Wasser nachfüllen");
            return check [0] = false;

        }
    }
    public boolean Bohnen()
    {
        if(res [1] > 0)
        {
            return check [1] = true;
        }
        else
        {
            Out.println("Bohnen nachfüllen");
            return check [1] = false;
        }
    }
    public boolean Satz()
    {
        if(res[2] == 10)
        {
            Out.println("Kaffeesatzbehälter voll");
            return check [2] = false;
        }
        else
        {
            return check [2] = true;
        }
    }
    public boolean macheKaffee()
    {
        if(check[0] == true && check [1] == true && check [2] == true)
        {
            Out.println("Kaffee fertig");
            res [0]--;
            res [1]--;
            res [2]++;
            return true;
        }
        else
        {
            return false;
        }
    }      
}

ps das ganz läuft über BlueJ
 
Zuletzt bearbeitet:
Das erste ist, schrieb Methoden und Variablennamen klein.
Das zweite ist, du schreibst deine Werte zwar in res, aber ich seh nirgends das du Wasser() , Bohnen() oder Satz() aufrufst, um check zu fuellen. Denn diese Werte schaust du dann in macheKaffee() nach.
Somit kann das if niemals wahr werden ^^.

PS: Fuer sowas kann man gut den debugger nutzen, bzw system outs. Diese einfach vor die if setzen und dir die Werte von check ausgeben lassen.
 
Vielen vielen dank :D
oh mann das ich die nicht aufrufe hätte ich auch selbst drauf kommen können -.- Manchmal seh ich echt den Wald vor lauter Bäumen nicht
 
Dafuer gibts ja das Forum :)
Dann bitte einmal den "erledigt" Knopf neben dem Antworten Button nutzen (siehe meine Sig ^^)
 
Eine Frage hab ich noch :D
Java:
while(tasse > 0)
            {
            i = macheKaffee();
            if(i = true)
            {
                tasse--;
            }
            else
            {
                tasse = 0;
            }
            }

warum bricht er da nicht ab sondern rödelt doch alle eingegebenen Tassen durch?
 
Ganz fieser, böser Fehler:

"=" ist nicht vergleichen, sondern zuweisen... In deiner If-Bedingung setzt du i auf true, und diese Zuweisung ist für Java ein "true" im weitesten Sinne...

"==" wäre das Mittel der Wahl :)
 
Zurück