copyright 1999 - 2014 by heinz prelle - hannover  - lenbachstraße 42 - www.visual-basic5.de | impressum
Schleifen 1 Schleifen 2 Schleifen 3
Mehrfache Programmschleifen

Beispiel:
Folgendermaßen kann mit Hilfe einer Schleife das Herausfinden der kleinsten Zahl aus einem Feld mit n Zahlen erfolgen :
Man vergleicht die erste der Zahlen der Reihe nach mit allen anderen Zahlen und vertauscht, sobald eine andere Zahl kleiner ist als die erste, diese beiden Zahlen. Auf diese Weise steht immer die kleinste der zum Vergleich herangezogenen Zahlen an erster Stelle. Nach dem Vergleich mit der letzten Zahl steht das Minimum vorn.

Strukturansicht:
Vorgehensstruktur: Bei Name des Feldes A
Source Beispiel:
Option Base 1

Private Sub sFirstLoop5()
    Dim A       As Variant
    Dim arrA    As Variant
   
    A = Array(4.5, -7, 3.8, -9.5, -10, 0, -16)
    For i = 2 To 7
        If A(1) <= A(i) Then GoTo NextLoop
        arrA = A(1)
        A(1) = A(i)
        A(i) = arrA
NextLoop:
    Next i
    For k = 1 To 7
        Picture1.Print A(k)
    Next k
End Sub
Hier wird in dem Quelltext beim vertauschen ein Hilfsspeicher (arrA) verwendet. Das Vertauschen darf nicht durch

A(i) = A(1) oder
A(1) = A(i) geschehen

da dann der Wert von A(1) auf beiden Speichern steht. Für die verschiedenen i-Werte ist der Inhalt des Feldes A am Ende der Schleife also bei (Next i).
Will man ein Feld von Zahlen der Größe nach anordnen (sortieren), so kann das vorangegangene Beispiel dazu verwendet werden. Nachdem man die kleinste Zahl mit dem Beispiel auf die erste Position gebracht hat, bringt man auf die gleiche Weise die zweitkleinste Zahl auf den zweiten Platz des Feldes und danach die drittkleinste auf den dritten Platz usw. Wird als letztes die zweitgrößte Zahl auf den vorletzten Platz gespeichert, so steht automatisch die größte Zahl auf dem letzten Platz.
Das Schleifenbeispiel muß also ( n - 1 ) mal durchlaufen werden. Gibt k die Schleifendurchlaufanzahl der Schleife an dann läuft i

in dem ersten Durchlauf von 2 bis n, also von k bis n,
in dem zweiten Durchlauf von 3 bis n, also von k bis n,
.....usw.
in dem letzten Durchlauf von n bis n, also von k bis n.

Auf diese Weise erhält man ein Programm mit einer Doppelschleife ( bzw. ein Programm mit 2 ineinandergeschachtelten Schleifen ).
Vorgehensstruktur:
Source Beispiel:
Option Base 1

Private Sub sFirstLoop6()
    Dim A        As Variant
    Dim arrA     As Variant
   
    A = Array(4.5, -7, 3.8, -9.5, -10, 0, -16)
    For k = 1 To 7
        For i = k To 7
            If A(k) <= A(i) Then GoTo NextLoop
            arrA = A(k)
            A(k) = A(i)
            A(i) = arrA
NextLoop:
        Next i
        Picture1.Print A(k);
    Next k
End Sub
Kurzhinweis: Doppelschleifen werden vor allem beim Beschreiben und Verarbeiten von zweidimensionalen Datenfeldern verwendet.