Bedingung zwei mal überprüfen

xheinz

Mitglied
Hey! Ich habe diesen Code hier:
Code:
do
        {
            //Zufallszahlen zwischen 1 und 5
            Random zufallRandom = new Random();
            int x = 0 + zufallRandom.nextInt(4 + 1);
            System.out.println(pj[x].vorname +" angelt grade");
            if(See.catchFish(false) == true) {
                System.out.println("Wassertier gefangen!!");
            }
            else {
                System.out.println("Müll gefangen!");
            }
            
            System.out.print("Weiter? ");
            ein = reader.next();
            
        } while (ein.equals("j"));

Falls See.cathFish(false) == true, wurde ein Wassertier gefangen. Wenn ein Angler nun zwei mal ein Wassertier gefangen hat muss er bezahlen. Wie kann ich diese Bedingung zwei mal überprüfen? MfG
 
Du kannst ja einen Zähler einbauen. Immer wenn ein Tier gefangen wurde, erhöhst du den Zähler. Und den Zähler kannst du dann auswerten.

Oder da du nur bis zwei gehen willst, dann wäre die Logik ja, dass ein Fisch frei ist. Also kannst du eine boolean Variable nutzen: gotFreeFish oder so. Wenn ein Fisch gefangen wurde, prüfst du, ob die Variable false ist. Wenn sie false ist, setzt du sie auf true. Ist sie schon true, dann muss der Angler bezahlen ...

Zwei Optionen, erste ist universeller, da auch mehr Fische frei sein können ...
 
Code:
    int zaehler = 0;
        do
        {
            //Zufallszahlen zwischen 1 und 5
            Random zufallRandom = new Random();
            int x = 0 + zufallRandom.nextInt(4 + 1);
    
            System.out.println(pj[x].vorname +" angelt grade");
            if(See.catchFish(false) == true) {
                System.out.println("Wassertier gefangen!!");
                zaehler++;
            }
            else {
                System.out.println("Müll gefangen!");
            }
            
            System.out.println(zaehler);
            System.out.print("Weiter? ");
            ein = reader.next();
            
        } while (ein.equals("j"));

Ich habe den Zähler nun so eingebaut. Jedoch zählt er jetzt für alle Angler zusammen. Ich wollte jedoch, dass es nur für den jeweiligen Angler, welcher grade angelt zählt und speichert. Ich hoffe du kannst mir da weiterhelfen 🙂
 
Dann musst du für jeden Angler einen Zähler haben.

Du kannst das separat machen oder du steckst es mit in die Klasse. So dass du neben vorname auch ein Feld gefangeneFische hast oder so.
 

Zurück
Oben