Hallo,
ich würde gerne Werte für das Datenfeld s(i) in einer Schleife mit Abruchbedingung berechnen.
Allerdings "greift" die Abruchbedingung nicht - die Do-Schleife wird nicht verlassen.
Die Werte sollen sein:
s(0)=1
s(1)=2
s(2)=4
s(3)=8
dann soll die Schleife verlassen werden, da s(3)>r
siehe hierzu:
Dim i, r, s(10) As Integer
r = 5
i = 0
Do Until s(i) > r
s(i) = 2 ^ i
i = i + 1
Loop
---------------------------------------------------------
Ein Versuch mit einer For-Next-Schleife funktioniert:
Sub wert()
Dim i, r, s(10) As Integer
r = 5
For i = 0 To 100
s(i) = 2 ^ i
If s(i) > r Then Exit For
Next
end sub
---------------------------------------------
Für mein Programm ist aber die "Do-Until-Schleife" besser, da ich vorher nicht weiß, wieviele Durchläufe benötigt werden.
Eine "For-Next-Schleife" mit einem großen Wert ( Dim s(1000) as Integer ) wäre nicht so günstig.
Wie kann ich eine "Do-Until-Schleife" verwenden, die abbricht wenn s(i) > r ?
Vielen Dank für Ihre Hilfe.
|