Skiverleih

toffelwurst

Grünschnabel
Hallo ihr :)

also sitze mal wieder vor Java soll was programmieren klappt soweit auch alles aber an einer Stelle verzweifel ich.
Habe einen Ski und Snowboardverleih programmiert der funktioniert einwandfrei. Jetzt kommt eine main-methode dazu, die vom benutzer über die Konsole abfragt was und wieviel ausgeliehen, oder zurückgegeben werden soll. Mein Problem ist gerade, dass ich wenn Ski ausgeliehen werden, auch die gleiche Anzahl Stöcke und Skischuhe ausgeliehen werden sollen. Das selbe mit Snowboards dazu sollen Helme, Schuhe und Protektorwesten ausgeliehen werden.
Meine Frage ist grade, wie bringe ich Java bei, dass er wenn Ski oder Snowboard eingegeben wird nicht nur die beiden Dinge sondern auch die andren Sachen ausleiht.

Hier mal mein Code mit zwei möglichkeiten die ich mir gedacht habe aber bei denen nichts passiert.
Java:
public class SkiUndSnowboardVerleih
{
    String[] gerät = {"Skischuhe", "Stoecke", "Ski", "Snowboard", "Snowboardschuhe", "Weste", "Helm"};
    int[] bestand = {50, 50, 50, 30, 30, 20, 40};
    
    public void verwalteBestand(String name, int anzahl, boolean ausleihe)
    {
        if(ausleihe == true)
        {
            String searchstring = name;
            for (int i = 0; i < gerät.length; i++)
            {
                if(gerät[i].equals(searchstring))
                {
                    if(bestand[i] > 0 && bestand[i] - anzahl > 0)
                    {
                    bestand[i] = bestand[i] - anzahl;
                    }
                    else
                    {
                        Out.println("Nicht genug "+gerät[i]+" vorrätig");
                    }
                }
            }
        }
        else
        {
            String searchstring = name;
            for (int i = 0; i < gerät.length; i++)
            {
                if(gerät[i].equals(searchstring))
                {
                    bestand[i] = bestand[i] + anzahl;
                }
            }
        }
    }
    
    public void print()
    {
        Out.println(gerät[0]+":"+bestand[0]+"\n"+gerät[1]+":"+bestand[1]+"\n"+gerät[2]+":"+bestand[2]+"\n"+gerät[3]+":"+bestand[3]+"\n"+gerät[4]+":"+bestand[4]+"\n"+gerät[5]+":"+bestand[5]+"\n"+gerät[6]+":"+bestand[6]);
    }
   
    public void main ()
    {
       Out.println("Bitte das gewünschte Gerät eingeben (Bitte in Hochkommata)");
       String name = In.readString();
       Out.println("Bitte Anzahl eingeben");
       int anzahl = In.readInt();
       Out.println("Ausleihen? true (JA) false (NEIN)");
       boolean ausleihe = In.readBoolean();
       if( name == "Snowboard")                 // hier soll er mir dann alles zusätzlich ausleihen
       {
           verwalteBestand(name = "Snowboardschuhe", anzahl, ausleihe);
           verwalteBestand(name = "Weste", anzahl, ausleihe);
           verwalteBestand(name = "Helm", anzahl, ausleihe);
       }
       else if(name == "Ski")                      // hier das Selbe
       {
           verwalteBestand("Skischuhe", anzahl, ausleihe);
           verwalteBestand("Stoecke", anzahl, ausleihe);
           verwalteBestand("Ski", anzahl, ausleihe);
       }
       Out.println("\nNeuer Bestand");
       print();
    }
}
 
Strings vergleicht man nicht mit == sondern mit equals :D
Java:
 "Snowboard".equals(name);

Problembeschreibungen wie "bei denen nichts passiert." sind nicht sehr hilfreich ;)
Mit einem System.out haettest du schnell sehen koennen ob er ueberhaupt in das if kommt. :D
 
Kein Problem ^^
Wie gesagt, System.out nutzen und ansonsten evtl noch nen Debugger :)

PS. Noch als erledigt markieren wenn keine Fragen mehr dazu sind, danke
 
Zurück