# Ausstieg aus einer verschachtelten For-Next-Schleife



## Alfred_ (29. November 2007)

Hi,
den div. Handbüchern zufolge wird bei EXIT FOR die Schleife mit dem nächsten Schleifendurchgang fortgesetzt.
Folgende Situation
	
	
	



```
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.


----------



## Matze (29. November 2007)

Du hast keine Frage gestellt!


----------



## DrSoong (29. November 2007)

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!


----------



## Alfred_ (29. November 2007)

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)

```
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!


----------



## Mel_One (29. November 2007)

Sowas sollte möglich sein. Ansonsten stimme ich Matze und DrSoong zu, dat es dafür schönere Lösungen gibt.


----------



## Alfred_ (29. November 2007)

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


----------



## DrSoong (29. November 2007)

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!


----------

