FOR NEXT

Beschrijving:
Het concept van de FOR…NEXT looping (lus) geeft ons de mogelijkheid om een stuk code
een specifieke aantal malen uit te voeren. Zie ook de sectie hieronder over het
voortijdig uit een lus stappen (alvorens de teller de eindwaarde heeft bereikt.)

Een start en een stop waarde worden opgegeven:

    for var = 1 to 10 
      {BASIC code} 
    next var 
In dit geval, wordt de {BASIC code} 10 keer uitgevoerd,
met var die de eerste keer 1, de tweede 2, enzovoort tot 10 is de tiende keer.
Naar keuze (en gewoonlijk) wordt var gebruikt in één of andere berekening in de {BASIC listing}.
Bijvoorbeeld als de {BASIC listing} PRINT var ^ 2 is, dan zal een lijst van kwadraten van var worden getoond
als de listing wordt uitgevoerd.

De gespecificeerde range van de FORNEXT index kan even goed tussen 2 TOT 20, in plaats van 1 TOT 10 zijn,
maar aangezien de lus standaard altijd met +1 telt, moet het eerste getal kleiner zijn dan het tweede.
De manier om deze beperking te omzeilen is door STEP n te plaatsen aan het eind van de FOR statement:

    for index = 20 to 2 step -1
      {BASIC code}
    next index

Dit stukje listing (looping) bijvoorbeeld geeft 19 keer een waarde voor index dat begint met 20 en eindigt met 2.
STEP kan met zowel positief als met negatieve getallen worden gebruikt en het is niet beperkt tot gehele getallen.

    for x = 0 to 1 step .01
      print "The sine of "; x; " is "; sin(x)
    next x

Facultatief gebruik van "next"
Liberty BASIC 3 maakt het gebruik van de variabele na "next" facultatief,
maar als die variabele expliciet wordt aangewezen, moet het passen bij de variabele die gebruikt is met "for".
Voorbeeld:

Correct:
    for x = 0 to 1 step .01
      print "The sine of "; x; " is "; sin(x)
    next 

Incorrect:
    for x = 0 to 1 step .01
      print "The sine of "; x; " is "; sin(x)
    next y

Voortijdig verlaten van een lus (loop spreek uit loep)
GOSUB, FUNCTION en SUB mogen gebruikt worden binnen een FOR/NEXT loop
omdat ze de programma flow slechts tijdelijk wijzigen of slechts tussendoor
andere delen van het programma aanroepen. De uitvoering van het programma gaat
in al deze gevallen steeds verder vanuit de FOR/NEXT loop.

Bij het gebruik van GOTO wordt niet standaard teruggekeerd naar het binnenste van de loop.
GOTO moet daarom niet gebruikt worden om uit een loop te treden.
"EXIT FOR" zal wel ervoor zorgen dat correct uit een loop gesprongen kan worden
voordat deze normaal beëindigd is.

  for index = 1 to 10
    print "Enter Customer # "; index
    input customer$
    if customer$ = "" then [quitEntry] 1
        'verlaat de for/next loop nooit op deze wijze
    cust$(index) = customer$
  next index
  [quitEntry]
 . . . dit wordt niet toegestaan!  Gebruik liever while… wend:

  
index = 1
  while customer$ <> "" and index <= 10
    print "Enter Customer # "; index
    input customer$
    cust$(index) = customer$
    index = index + 1
  wend

EXIT FOR


Als het noodzakelijk is om een loop te verlaten vóór dat de teller zijn definitieve waarde heeft bereikt,
gebruikt men het EXIT FOR statement. Dit staat het programma toe om de lus correct te verlaten
en de actuele waarde van de teller te bewaren. Gebruik het als volgt:

for x = 1 to 20
    y=x*3
    if y>40 then EXIT FOR
next x

print "Eindwaarde van x  ";x
print "Eindwaarde van y  ";y

'Output
Eindwaarde van x  14
Eindwaarde van y  42