Opdrachten meerdere keren uitvoeren
Het kan in veel gevallen handig zijn om een stuk code meerdere keren uit te voeren. Bijvoorbeeld als je de
waarden uit een array weer wilt geven. Je kunt daarvoor telkens dezelfde code gebruiken, als de index maar
verandert. Dit is vooral handig als je van te voren niet weet hoeveel waarden een array bevat.
Je kunt opdrachten meerdere keren uitvoeren met behulp van loops. Er zijn twee soorten loops, een die een
bepaald aantal keer uitgevoerd wordt en een die uitgevoerd wordt totdat er aan een bepaalde voorwaarde is voldaan
(of zolang er juist niet aan een bepaalde voorwaarde is voldaan). De eerste noemen we een
For ... Next loop, de andere een Do ... Loop loop. Hieronder worden
ze beiden besproken.
For ... Next
Een For ... Next loop werkt op basis van een teller die we eerst declareren. Er wordt
vervolgens aangegeven waar de teller moet beginnen en waar die moet eindigen. Deze teller wordt elke keer als de
opdrachten uitgevoerd zijn met één verhoogd, totdat de hoogste waarde is bereikt. Eventueel kan
de teller ook met meer tegelijk verhoogd worden. Het voorbeeld hieronder is heel eenvoudig. De index wordt bij iedere
stap naar de browser geschreven (met een harde return).
fornext1.asp
<%
Option Explicit
Dim i
%>
<HTML>
<BODY>
<%
For i = 1 To 20
Response.Write i & "<br>"
Next
%>
</BODY>
</HTML>
Array's lenen zich erg goed voor dergelijke loops. Je kunt dit zien in het onderstaande voorbeeld. Hierin
gebruiken we de Split functie om een string met waarden gescheiden door komma's
om te vormen tot een array. Vervolgens gebruiken we de UBound functie om te kijken
hoeveel waarden er in de array zitten.
fornext2.asp
<%
Option Explicit
Dim i
Dim strWaarden
Dim aWaarden
Dim lngAantal
strWaarden = "Jan,Piet,Klaas,Kees"
aWaarden = Split(strWaarden, ",")
lngAantal = UBound(aWaarden)
%>
<HTML>
<BODY>
<%
For i = 0 To lngAantal
Response.Write aWaarden(i) & "<br>"
Next
%>
</BODY>
</HTML>
Do ... Loop
Do ... Loop heeft meer mogelijkheden dan For ... Next, maar
je moet ook meer zelf doen. Je moet zelf bepalen welke voorwaarden er moeten zijn om de code (nogmaals) uit te voeren.
Als je een teller gebruikt moet je die ook zelf ophogen. Als je dit vergeet, blijft de loop oneindig doorlopen.
We geven twee voorbeelden:
doloop1.asp
<%
Option Explicit
Dim i
%>
<HTML>
<BODY>
<%
i = 1
Do While i < 21
Response.Write i & "<br>"
i = i + 1
Loop
%>
</BODY>
</HTML>
doloop2.asp
<%
Option Explicit
Dim i
%>
<HTML>
<BODY>
<%
i = 1
Do
Response.Write i & "<br>"
i = i + 1
Loop Until i = 21
%>
</BODY>
</HTML>
In het tweede voorbeeld weet je dat de opdrachten minimaal één keer worden uitgevoerd. In het
voorbeeld daarvoor is dat niet zo. Verder zijn While en Until
uitwisselbaar. Het hangt af van de situatie welke handiger is om te gebruiken.
|