De FOR...STEP structuur
FOR...STEP werkt op dezelfde wijze als FOR...NEXT, alleen kunt u nu
voor de stapgrootte een andere waarde dan 1 opgeven. De syntaxisis:
begin einde FOR teller lusclausule stapgrootte STEP
FOR
STEP
Voorbeeld 1: een FOR...STEP lus. Het volgende programma plaatst
het kwadraat van de gehele getallen 1, 3, 5, 7 en 9 in het stapelgeheugen:
« 1 9 FOR = = SQ 2
STEP =
Voorbeeld 2: een FOR. ..STEP lus. Het volgende programma neemt n
uit het stapelgeheugen, en geeft als uitkomst de rij getallen 1, 2, 4, 8, 16,
. n. Als n niet in de rij staat, stopt het programma bij laatste waarde die
kleiner is dan n.
1 SWAP FOR nn on STEFP =
Hoe FOR...STEP werkt. FOR gebruikt begin en einde uit het
stapelgeheugen als de begin- en eindwaarde voor de teller, en creéert
vervolgens de lokale variabele teller als teller van de lus. Vervolgens wordt
de lusclausule uitgevoerd; teller kan binnen de lusclausule staan. STEP
neemt de waarde van de stapgrootte uit het stapelgeheugen en verhoogt
de teller met die waarde.
De waarde van de stapgrootte kan positief of negatief zijn. Als de waarde
positief is, wordt de lus nogmaals uitgevoerd als de teller kleiner dan of
gelijk is aan einde. Als de waarde negatief is, wordt de lus uitgevoerd als
de teller groter dan of gelijk is aan einde.
Als de lus is be€indigd, wordt teller geschoond.
(In het volgende stroomdiagram is de waarde van de stapgrootte positief.)
27: Lusstructuren
541