nimm spiel



  • Das wird funktionieren, ist aber noch verbesserungsfähig. Wenn du geduldig falsche Zahlen eingibst, wird das Programm irgendwann mit einem stack overflow abbrechen.

    Th69 schrieb:

    Packe in deine Funktion 'mensch' eine Schleife, welche die entsprechende Bedingung (1-3 Hölzer) überprüft.

    manni66 schrieb:

    Welche Konstrukte, mit denen sich Dinge wiederholt ausführen lassen, kennst du?



  • Rekursion (der Aufruf einer Funktion aus derselbigen) ist eher eine schlechte Wahl für eine Schleife.

    Warum hat die Funktion mensch einen Parameter?



  • @ manni 66
    ich habe keine ahnung , wir hatten bis jetzt die while-;for-;do-while;if;und switch verzweigung

    würde aus dem bauch auf eine for-schleife tippen



  • @ dirk B

    sind bei pc(hoelzer)diese %4 nicht auch parameter?
    doch das hat irgendwie bei mensch nicht geklappt



  • Andi24 schrieb:

    ich habe keine ahnung ,

    Schlecht

    Andi24 schrieb:

    wir hatten bis jetzt die while-;for-;do-while;

    Was ist der Unterschied zu

    Andi24 schrieb:

    if;und switch verzweigung

    Andi24 schrieb:

    würde aus dem bauch auf eine for-schleife tippen

    Die Schleifen haben verschiedene Eigenschaften.
    Welche Eigenschaft der for-Schleife ist hier günstig?



  • Andi24 schrieb:

    @ dirk B

    sind bei pc(hoelzer)diese %4 nicht auch parameter?
    doch das hat irgendwie bei mensch nicht geklappt

    Nein. Die Paramter sind die Übergabewerte an die Funktion. Hier hoelzer.

    Allerdings ist es sinnvoller, den Zufallswert gleich in der Funktion zu ermitteln.

    # Ok, das Programm beginnt und es bekommt ein Thema.
    # - Ich und mein Holz



  • die ersten 3 sind schleifen
    und die if ist eine fallunterscheidung
    und switch ist ja eine mehrfachauswahl wo man in jeder case unterschiedliche anwendungsblöcke einfügen kann



  • Andi24 schrieb:

    die ersten 3 sind schleifen
    und die if ist eine fallunterscheidung
    und switch ist ja eine mehrfachauswahl wo man in jeder case unterschiedliche anwendungsblöcke einfügen kann

    Du brauchst eine Wiederholung (Schleife)
    Also while-, for- oder do-while

    Und du willst nach der Eingabe entscheiden, ob die Schleife wiederholt wird.
    Welche Schleife ist dafür am Besten geeignet.



  • dann müsste es einen while sein ;while(bedingung) und wenn erfüllt zum nächsten schritt glaube ich bei einer for ist es doch so dass man die anzahl der prüfungen in den bedingungen vorgibt z.B. for(n=0;n<5;n++)



  • Andi24 schrieb:

    dann müsste es einen while sein ;while(bedingung) und wenn erfüllt zum nächsten schritt

    Und wie ist die Bedingung? Hast du nicht eher etwas in der Art "gibt eine Zahl ein, bis diese im korrekten Bereich liegt"? Oder meinst du "solange keine gültige Zahl eingegeben wurde, wiederhole Eingabe"?

    bei einer for ist es doch so dass man die anzahl der prüfungen in den bedingungen vorgibt z.B. for(n=0;n<5;n++)

    Man kann in einer for-Schleife alles mögliche tun. for (Initialisierung; Bedingung; Increment). Bedingung ist optional, kann aber auch kompliziert sein. Und Increment ist ein normales Statement, d.h. es braucht kein Increment zu sein, sondern kann auch irgendwas anderes machen oder leer bleiben. Du kannst auch schreiben:

    for(;;){ cout << "Und noch eine Zeile\n"; }
    


  • Bei einer while-Schleife wird vor dem ersten Durchlauf schon geprüft.
    Allerdings gibt es bei deinem Problem noch nichts zu prüfen, da die Eingabe ja noch nicht erfolgte.

    Da ist die do-while-Schleife etwas hübscher.

    Bedenke aber, dass while "solange" bedeutet. solange die Bedingung wahr ist, wird die Schleife ausgeführt.

    Klar kannst das auch mit der while- oder for-Schleife machen.


Anmelden zum Antworten