Schleifen verlassen



  • Hi,

    in meinem Programm laufen mehrere Schleifen. Nun möchte ich in der zweiten Schleife gerne die Möglichkeit haben, komplett aus beiden Schleifen rauszugehen. Ich habe folgenden Code:

    if (ende == true)
    { 
       break;
       break; 
    }
    

    Der Compiler sagt, dass da Code ist der nicht mehr erreicht wird. Ist ja auch logisch, nämlich das zweite break. ich erinnere mich aber, dass es eine Möglichkeit gibt.

    break 2; geht auch nicht.

    Wer weiß weiter?

    Hannes



  • Benutze Funktionen und spring da mit return raus.



  • Oder goto



  • break 2; war AFAIK Java oder C#. Keine Ahnung. Wenn du unbedingt goto oder eine andere Funktion vermeiden willst kannst du auch mit einem zusätzlichen Flag arbeiten. Aber goto dürfte die einfachste Lösung sein. Ist echt schade, dass es kein break n; gibt.



  • MaSTaH schrieb:

    break 2; war AFAIK Java oder C#. Keine Ahnung. Wenn du unbedingt goto oder eine andere Funktion vermeiden willst kannst du auch mit einem zusätzlichen Flag arbeiten. Aber goto dürfte die einfachste Lösung sein. Ist echt schade, dass es kein break n; gibt.

    break n; ist doch auch nicht mehr als eine "verschönernde" Umschreibung von goto. Man erspart sich bloß den Zeitaufwand für das Label 😉

    MfG SideWinder



  • Naja, for könnte man auch durch while ausdrücken oder if durch while(/*Bedingung*/){/*mach was*/break;} 😉 . break n; wäre aber einfach, verständlich und nützlich. Bei einem goto muss man das Label suchen. Bei break n; weiß ich: "Ich springe aus n Scopes heraus".



  • Ich weiß nicht ob das möglich ist, da ich deinen Code nicht kenne, aber wieso gibst du nicht einfach bool Variablen in die Leufbedingung deiner beiden Schleifen, die du dann auf 0 setzen kannst.



  • @carrer: Kam schon

    MaSTaH schrieb:

    ...kannst du auch mit einem zusätzlichen Flag arbeiten.

    BTW: Funktioniert das mit dem Flag immer. Egal bei welchem Code. Man müsste ihn nur halt richtig umschreiben.



  • MaSTaH schrieb:

    @carrer: Kam schon

    MaSTaH schrieb:

    ...kannst du auch mit einem zusätzlichen Flag arbeiten.

    BTW: Funktioniert das mit dem Flag immer. Egal bei welchem Code. Man müsste ihn nur halt richtig umschreiben.

    es geht immer mit dem flag. es geht immer mit goto. goto ist hier vorzuziehen, da es die leufbedingungen nicht komplizierter macht.
    edit: return ist noch viel besser.



  • goto oder return ist vorzuziehen.



  • goto??!! 😮 👎
    goto böse... wenn möglich andere Lösungen finden 😉

    Ich weiß das es in diesem Fall durch das goto nicht zu unübersichtlich werden würde, trotzdem sollte man das nicht unbedingt einreißen lassen.



  • FrodoSix schrieb:

    goto??!! 😮 👎
    goto böse... wenn möglich andere Lösungen finden 😉

    Warum?


Anmelden zum Antworten