(ANSI C) GOTO Befehl



  • Wie kann ich es anstellen das ich nach einer Fehleingabe z.B. eines
    Zahlenwertes wieder an den Beginn der main-anweisung springe.
    Ich habe es mit dem goto befehl probiert jedoch habe ich wohl noch ein paar Probleme mit der Syntax.Hier ein paar Zeilen Code dazu

    void mistake()
    {
    if (choice1!=1),
    {
    goto main;
    }
    }
    

    [ Dieser Beitrag wurde am 09.07.2002 um 07:10 Uhr von Alphanewmerick editiert. ]



  • [ Dieser Beitrag wurde am 09.07.2002 um 07:10 Uhr von Alphanewmerick editiert. ]



  • aus einer funktion springst du mit return zurück

    goto nicht mehr verwenden.. es ist a) niemals nötig, man kann alles anders lösen... und b) gibts die gefahr von "spagetticode", die übersicht geht flöten 🙂

    [ Dieser Beitrag wurde am 09.07.2002 um 07:13 Uhr von elise editiert. ]



  • Wie stell ich das an?
    Habe keinen blasen Dunst über die Syntax des Befehls.
    Kann es ungefähr so aussehen:

    void mistake()
    {
    if (choice1!=1),
    {
    return (main);
    }
    }
    

    [ Dieser Beitrag wurde am 09.07.2002 um 07:34 Uhr von Alphanewmerick editiert. ]



  • Beispiel:

    int main(void)
    {
    ...
    mistake(); //Aufruf von mistake()
    //Hier gehts weiter nach dem return in mistake()
    ...
    }
    
    void mistake(void)
    {
       if (choice1!=1),
       {
          return; //springt zurück zu der Stelle, wo die Funktion aufgerufen wurde
       }
    }
    


  • anfang:
    cin<<wert;
    if (wert=='j' || wert == 'n')goto weiter;
    goto anfang;
    weiter:
    

    😃 willst du wirklich so enden? fast alle . 99,9% um genau zu sein .. gotos lassen sich mit Funktionen abwimmeln. Einzige ausnahme ist vieleicht einer verschachtelte Schleife wo man von der 4rten verschachtelung in ddie 2te will oder so



  • Och, Leute. Das ist doch alles _schönster_ Standard. Ich schicks mal zu ANSI-C - in C++ benützt sowieso keiner mehr goto :p:D;).

    MfG SideWinder


Anmelden zum Antworten