do-while Schleife durch while ersetzen



  • Ich kann als Unregistrierter nicht editieren, deshalb die 1000 posts hintereinander sorry...

    Ich habe auch mal das versucht :

    while (antwort == 'd' || antwort == 'D')
    	{
    		goto main();
    	}
    

    Nach/vor der Anweisung. Aber dann tickt der aus und sagt ich hätte nach main() das Simikolon vergessen...



  • Ups! Natürlich heisst das != 'd' ...



  • Ich weiß zwar nicht was du damit bezwecken willst, aber goto ist immer der Falsche Weg.. Ganz schlechter Stil.



  • Ich hab das was Neopixel (auch Star Wars Fan ?^^) noch mal versucht und jetzt klappt das auf einmal. War wohl ne Kleinigkeit...ok danke an alle es hat sich erledigt und mein BLutdruck ist wieder normal..XD ! _



  • Die Antwort von NEO.Pixel ist schon richtig, nur daß die Variable einen definierten Wert zugewiesen bekommen sollte:

    char antwort = '\0'; // damit es nicht zufällig den Wert 'd' enthält -)
    while(antwort != 'd' && antwort != 'D')
    {
        // ...
    }
    

    Warum willst du denn die do-while-Schleife überhaupt durch eine while-Schleife ersetzen?
    Du willst ja erst eine Eingabe anfragen und danach dann entsprechend dieses Wertes auswerten.



  • Jop ich hab

    char antwort = 'd';
    

    auch vor der Schleife geschrieben. Klappt alles.



  • Das ganze kann man aber nicht als for-schleife schreiben oder ? Würd mich mal interessieren.



  • Alle Schleifentypen sind austauschbar.

    Bei dir wäre es dann:

    for(char antwort = '\0'; antwort != 'd' && antwort != 'D'; /* no increment */ )
    {
      // ...
    }
    

    (Ich liebe es, Hausaufgaben für andere zu machen -)



  • Hast du jetzt eigentlich nicht, ich wollte es nur mal gewusst haben. Trotzdem danke. Allerdings würde ich , jetzt wo du es reingeschrieben hast, wissen , wie du auf = '\0' kommst.



  • Prof. Anfänger schrieb:

    Soll ich die Anweisung jetzt vor der while Schleife und innerhalb der while Schleife schreiben?

    Genau das sollst Du tun. Wenn das nicht geht, hast Du was falsch gemacht.

    volkard schrieb:

    SG1 schrieb:

    Eine do-while-Schleife hat die allgemeine Form

    do Anweisung
    while (Ausdruck)

    Das matched Du jetzt auf den Ausgangscode (Was ist Anweisung? Was ist Ausdruck?), und setzt das in

    Anweisung
    while (Ausdruck)
    Anweisung

    ein.

    oder

    if(Ausdruck)
    do
    Anweisung
    while(Ausdruck)

    Falsche Richtung.



  • Ich denke, da muss man sich erst einmal mit den unterschiedlichen Schleifen-Typen wie ´do while´ oder ´while´ auseinandersetzen und diese verstehen, wo sie den Druchlauf abbrechen. Gehört zum Rüstzeug eines C-Programmierers und ist in jedem ordentlichen Buch zu C oder C++ hinreichend beschrieben!


Anmelden zum Antworten