Announcement

Collapse
No announcement yet.

Breaking Nested-Loops

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Breaking Nested-Loops

    Wie programmiert man am besten einen Abbruch aus geschachtelten Schleifen?

    Als Beispiel, ich habe zwei ineinandergeschachtelte Schleifen und in der Inneren eine Abbruchbedingung, welche beide Schleifen verlassen soll, falls sie erfüllt ist.

    Bsp:
    Code:
    for(int i=0; i<10; ++i){
    for(int j=0; j<10; ++j){
      if((i+j) > 10) breakOuterLoop();
    }
    // continue after break
    }
    Das Ganze könnte man natürlich mit goto lösen oder einer bool'schen Variable, die in der äusseren Schleife getestet wird. Aber schön ist anders.

    Ich meine ich hätte mal was über Labels für Schleifen gelesen. Gibt es sowas?

  • #2
    Mittels boolschen Wert und break
    Christian

    Comment


    • #3
      Das würde aber ganz schön häßlich sobald man drei oder vier verschachtelte Schleifen hätte. Kommt zwar nicht oft vor, aber könnte ja.

      Comment


      • #4
        Nun, wenn

        - es for-Schleifen sein müssen
        - goto u.ä. nicht genutzt werden sollten/sollen

        welche Sprache bietet andere Mittel?
        Christian

        Comment


        • #5
          Ich dachte ich hätte mal gelesen, dass es etwas in der folgenden Art gäbe:

          Code:
          outer : for(int i=0; i<10; ++i){
            for(int j=0; j<10; ++j){
              if(i+j>10){ break outer; }
            }
          }
          // continue here after break
          Aber das muss ich mir dann wohl eingebildet haben. Wäre aber eine schöne Erweiterung finde ich. Quasi eine Art safe goto.

          Comment

          Working...
          X