Nyeste it-job

Lektion 5: Løkker

VBScript giver mulighed for at styre afviklingen af scripts med forskellige kontrolstrukturer. I denne lektion vil vi kigge på eksempler på såkaldte løkker. Løkker kan anvendes til at gentage dele af et script et bestemt antal gange, eller indtil en bestemt betingelse er opfyldt.

For ... Next

Løkken dokumentationFor...Next fungerer på formen:

For Initialisering To Udtryk
     Sætning
Next

Systemet er at sætningen gentages det antal gange som værdien af 'udtryk' fratrukket 'initialisering'. Lyder det uforståeligt? Så prøv at se på et konkret eksempel:

<html>
<head>
<title>Løkker</title>
</head>
<body>

<%
Dim t

For t = 1 to 50
   Response.Write "<p>Denne tekst gentages 50 gange</p>"
Next
%>

</body>
</html>

I dette eksempel benyttes en variabel ved navn t. Som du kan se starter vi med at skrive Dim t, det kaldes at deklarere en variabel med dokumentationDim. Man behøver ikke at deklarere sine variabler, men det anses for at være god kodeskik - blandt andet fordi det er lettere at overskue hvis en anden person på et senere tidspunkt skal læse din kode igennem og forstå den.

Ellers forklarer eksemplet jo næsten sig selv. Løkken beder serveren om at gentage teksten mens t er mellem 1 og 50. Hver gang løkken når til Next bliver t plusset med 1.

Det er muligt at specificere hvilken værdi der skal tillægges t hver gang løkken gennemløbes. Det gøres med Step. Dette kan vises med følgende eksempel:

<html>
<head>
<title>Løkker</title>
</head>
<body>

<%
Dim t

For t = 1 to 50 Step 5
   Response.Write "<p>Variablen t er nu = " & t & "</p>"
Next
%>

</body>
</html>

Her vokser t altså med værdien 5 hver gang løkken gennemløbes. Bemærk iøvrigt hvordan værdien af t kan anvendes i sætningen.

Do ... Loop

En anden måde at lave en løkke på er med dokumentationDo...Loop på formen:

Do {While | Until} kondition
   Sætning
Loop 

Eller man kan sætte konditionen ud for Loop istedet (ingen praktisk forskel):

Do
   Sætning
Loop {While | Until} kondition

Syntaksen kan næsten oversættes direkte til dansk - alt efter om man benytte While eller Until:

Until
Udfør indtil en kondition er opfyldt.
While
Udfør mens en kondition er opfyldt.

Lad os kigge på et simpelt eksempel:

<html>
<head>
<title>Løkker</title>
</head>
<body>

<%
Dim t
t = 1

Do Until t = 6
   Response.Write "<h" & t & ">Overskriftsniveauer</h" & t & ">"
   t = t + 1
Loop
%>

</body>
</html>

Fangede du den? Først deklarerer vi variablen t, derefter sætter vi den til værdien 1. Vores løkke udskriver herefter headertags med t som niveau, indtil t er lig 6.

Løkker i løkker

I princippet er der ingen begrænsninger i hvordan løkker kan anvendes. Man kan således sagtens sætte løkker inden i løkker - og dermed opnå mange gentagelser.

Det kan dog godt betale sig at være påpasselig - ASP bliver langsommere jo mere komplicerede og omfattende scripts man skriver. Prøv f.eks. at kigge på det næste eksempel hvor vi med 3 løkker kan få udskrevet over 16 millioner farver!

For ikke at gøre siden langsom har vi dog begrænset antallet drastisk ved at sætte step til 30 - derved begrænses antallet af farver til 512.

<html>
<head>
<title>Løkker</title>
</head>
<body>

<%
Dim intRed, intGreen, intBlue, strColor

For intRed = 0 to 255 Step 30
   For intGreen = 0 to 255 Step 30
      For intBlue = 0 to 255 Step 30

	  strColor = "rgb(" & intRed & "," & intGreen & "," & intBlue & ")"
	  
	  Response.Write "<span style='color: " & strColor & "'> " & strColor & "</span>"

      Next
   Next
Next
%>

</body>
</html>

Eksemplet bygger på at de tre grundfarver (rød, grøn og blå) hver kan antage en værdi mellem 0 og 255 - enhver kombination af de tre farver danner en farve på formen rgb(255,255,255). Herefter er det blot at benytte denne farvekode i CSS koden for et <span>.

Løkker bliver mere nyttige når du har lært lidt mere. Så når du har forstået princippet i en løkke, kan du gå videre til næste lektion, som handler om betingelser


Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet