[.NET] [C#] wie wieder zum anfang springen?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von juppwatis, 31. Juli 2007 .

Schlagworte:
  1. 31. Juli 2007
    [C#] wie wieder zum anfang springen?

    hi @ all

    bin immer noch an meinem kl. spiel aber bin kurz davor es fertigzustellen. jetzt noch ein problem. wenn ich am schluss des spiels bin hab ich ein kl. menü, wo man auswählen kann ob man nochmal neustarten will. dafür muss man dann die 1 eingeben. gibt jetzt der spieler die eins ein, soll das spiel neu gestartet werden. wie mache ich das? was für ein code veranlasst das? Habs mal mmit

    Code:
    goto Main;
    
    versucht, aber damit gehts nicht

    mfg
     
  2. 31. Juli 2007
    AW: [C#] wie wieder zum anfang springen?

    In VB ruft mein eine Prozedur mit dem Call-Befehl auf. Falls es den in C# nicht gibt, kannst du das auch über Labels lösen.

    Ein Label benutzt du so:

    Code:
    Labelname:
    Befehl1
    Befehl2
    ...
    
    goto Labelname
    Die Befehle werden ausgeführt und das Programm springt zurück zum Label namens "Labelname".
     
  3. 31. Juli 2007
    AW: [C#] wie wieder zum anfang springen?

    ich geh jetzt mal davon aus, dass C# C/C++ sehr ähnlich ist....
    Die Version mit goto ist unschön und macht den Code schlecht zu lesen.
    Schöner wäre:
    Code:
    int main()
    {
     bool Raus = false;
     while(Raus == false)
     {
     // Hier kommt jetzt dein ganzer Code rein, mit Abfrage, ob man rausmöchte. 
     // bei ja wird Raus auf "true" gesetzt, die Bedingung ist ungültig und die Schleife wird verlassen
     }
     return EXIT_SUCCESS;
    }
    Wie gesagt... goto ist unschön, da viele Querverweise den Queltext oft schlecht lesbar machen...

    mfg thecoolman4rr
     
  4. 31. Juli 2007
    AW: [C#] wie wieder zum anfang springen?

    ja das stimmt womöglich mit goto. aber deine lösung...damit kann ich doch vom programmende nicht bis zum programmanfang springen oder? also ich kapier jetzt nicht wie und wo ich das einbauen musst, damit ich vom progammende, wenn ich das spiel neustarten möchte wieder an den anfang der Main()-Methode springen kann.

    mfg
     
  5. 31. Juli 2007
    AW: [C#] wie wieder zum anfang springen?

    natürlich geht das, blos ist auf den ersten blick nicht so flexible.
    Mein tipp: Ein goto schadet auch nicht

    Code:
    int main()
    {
     anfang:
     //dein toller code
     goto anfang;
     return EXIT_SUCCESS;
    }
     
  6. 31. Juli 2007
    AW: [C#] wie wieder zum anfang springen?

    hab es jetzt gelöst

    hab eine do-while-schleife dafür verwendet.
    am anfang die do schleife und die wird eben ausgeführt, bis der spieler am schluss keine 1 mehr eingibt beim menü

    mfg

    P.S.: spiel ist jetzt im showcase zu bewundern
     
  7. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Jo, mit ner While ist des Ganze gut gelöst.

    GOTO sollte man NIE benutzen, das ist sehr unsauberer Programmierstil und nicht ohne Grund in vielen Betrieben für die Programmierer nicht erlaubt.
     
  8. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Sag niemals nie oO.
    Wenn man immer nur goto verwendet wird der code sehr undurchsichtig, aber in so einem fall wie hier ist ein goto genauso verständlich wie ne do while.

    mfg tobZel
     
  9. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Hi!

    'goto' wird, soweit ich weiss, nur verwendet, wenn man aus einem dichten while-/for-Schleifengewirr nicht mehr so leicht rauskommt. Dann kann man das einfacher und uebersichtlicher mit 'goto' loesen als die 2-X Schleifen zu unterbrechen. Sonst ist 'goto', nicht nur wegen der Uebersichtlichkeit, zu vermeiden.

    Mfg,

    Kolazomai
     
  10. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Ja klar gibt es Situationen, in denen es sinnvoller sein kann. Ich kann nur aus der Erfahrung sprechen, dass es in meinem Betrieb für alle Programmierer verboten ist (1400 Mitarbeiter). Auch in anderen Betrieben in meinem Umfeld ist dieses so, da Azubis in der Berufsschule davon erzählt haben.
    Das wird ja sicherlich nicht aus der Luft gegriffen sein.

    In welchen Fällen noch?
     
  11. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Hab mal gehoert, dass es auch Fehler im Code verursachen KANN.
    Ich denk, wenn man z.B. irgendwie Variablen erstellt, Speicher alloziiert im Code zwischen 'goto label;' und 'label:', dann auf die Variable in 'label' zugreift, kann es zu Fehlern kommen.

    Ahja, hier die Erklaerung von 'pronix.de' ( C von A bis Z - Goto ):
    Mfg,

    Kolazomai
     
  12. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    Dann sag mir doch bitte mal wie Assemblerprogramme sonst funktionieren sollen
    Klar, ist die Syntax nicht goto, sondern jmp zb. aber ist im grunde das gleiche...

    So würd ich das stehenlassen.


    Wie schon gesagt, benutz ne while oder schreib dein Programm mit meheren Methoden.
    Vorteil von letzterem: Dein Programm wird übersichtlicher wenn man es damit nicht übertreibt.
     
  13. 1. August 2007
    AW: [C#] wie wieder zum anfang springen?

    @Kolazomai: Hui, daran hab ich noch garnicht gedacht, danke für die Erklärung
    @styxx: Es geht noch ne Stufe schlimmer:
    Hast aber Recht...
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.