ASPNL logo (1 kb)
dinsdag 13 mei 2008




Microsoft MVP

.NET Codewise Community
<< vorige | overzicht | volgende >>

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"

'Splits string en zet in array
aWaarden = Split(strWaarden, ",")

'Kijk hoeveel waarden er in de array zitten
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>
<%
'Initialiseer waarde
i = 1

Do While i < 21
   Response.Write i & "<br>"
   i = i + 1
Loop
%>
</BODY>
</HTML>




doloop2.asp
<%
Option Explicit

Dim
i
%>
<HTML>
<BODY>
<%
'Initialiseer waarde
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.

<< vorige | ^ naar boven | overzicht | volgende >>
copyright 2000-2007 ASPNL