Ausstieg aus einer verschachtelten For-Next-Schleife

Alfred_

Erfahrenes Mitglied
Hi,
den div. Handbüchern zufolge wird bei EXIT FOR die Schleife mit dem nächsten Schleifendurchgang fortgesetzt.
Folgende Situation
Code:
For a = 1 To ...
    For b = a + 1 To ...
      For c = b + 1 To ...
        For d = c + 1 To ...
          For e = d + 1 To ...
            For f = e + 1 To ...
              For g = f + 1 To ...
                For h = g + 1 To ...
            
'---- Anfang Inline
'hier werden div. Operationen ausgeführt und die Variable counter aktiviert.
'wenn die Bedingung erfüllt ist möchte ich vorzeitig aussteigen, daher exit for
'If counter = 198 Then Exit For
' nur das funktioniert nicht. Wie ist der korrekte Syntax?
'---- Ende Inline
                Next h
              Next g
            Next f
          Next e
        Next d
      Next c
    Next b
  Next a
Grüße und ich möchte mich jetzt schon bedanken.
 
Mal davon abgesehn, dass es mir bei so einer Schleifenkonstruktion die Haare aufstellt würde ich dir raten (wenn diese Konstruktion unbedingt sein muß), diese Berechnungen in einer Funktion auszulagern. Du müsstest dann nur noch mit Exit Function aus der Funktion aussteigen und hättest das Konstrukt überwunden. Die bessere Möglichkeit ist es aber, die ganze Sache nur auf eine Schleife zu vereinfachen.


Der Doc!
 
Hi, danke!
Bin grundsätzlich offen für Verbesserungen :-))
Da es aber die Möglichkeit einer verschachtelten Schleifenbildung gibt, scheint es mir logisch zu sein, dass man auch aus dieser 'Möglichkeit' geordnet aussteigen kann.
Vielleicht so? (als Beispiel)
Code:
            Next h
            If counter = 198 Then Exit For
           Next g
           If counter = 198 Then Exit For
          Next f
          If counter = 198 Then Exit For
       etc.
PS.: Noch ein Dankeschön und Hinweis an Matze: Frage ist im Code!
 
Danke für Deine Anmerkung und Hinweis.
Natürlich gibt es, wie bei jedem 'Schönheitswettbewerb, schönere Lösungen. Im vorliegendem Fall geht es um das Generieren von Kombinationen. Soweit ich informiert bin, ist es die 'schnellste' Variante (aber das kann schon wieder überholt sein).
Herzliche Grüße
 
Das Problem bei so einem Schleifenkonstrukt ist, dass das ganze doch extrem unübersichtlich ist (und das, obwohl du Einrückungen benutzt). Betr Geschwindigkeit müsste man testen, ob es schnelleres gibt.


Der Doc!
 
Zurück