Loopar
En alldeles särskild form av villkorade satser är loopar. Loopar innebär att någonting kommer att fortsätta upprepas så länge villkoren är uppfyllda. Loopar är mycket vanliga i script du kommer stöta på och jobba med, så det är en bra idé att ha bra koll på hur de fungerar.
Loopar i JavaScript kan delas in i while
- och for
-loopar, som fungerar på lite olika sätt.
while
En while-loop är egentligen rätt lik en if-sats. En while-loop ser näsan exakt likadan ut som en if-sats, men med if
utbytt mot ordet while
.
while (villkor) {
sats;
}
Satserna inom hakparenteser i en if-sats bara körs en gång, i en while-loop kommer dessa att upprepas hång på gång, så länge som villkoren är uppfyllda.
Testa till exempel nedanstående exempel:
var count = 1;
while (count < 11) {
alert (count);
count++; }
Scriptet börjar med att definiera variabeln count
och tilldela den det numeriska värdet 1
. villkoret för scriptet är att det ska upprepas, loopas så länge värdet på count är mindre än 11. Detta ska resultera i en alertruta som visar värdet till count
. Dessutom ska loopen räkna upp värdet till count
med ett steg. Eftersom det är en loop, kommer count
att gå från 1, till 2, 3, 4 och så vidare, tills loopen avslutas då värdet passerat 10.
Det kan vara värt att påpeka vikten av att värdet räknas upp (count++;
). Om inte detta gjordes skulle loopen fortsätta öppna nya alertrutor hur länge som helst.
do… while
Det kan finnas tillfällen då en while
-loop överhuvud taget inte kommer att köras eftersom villkoren inte är uppfyllda från början (detta gälller förresten också vanliga if-satser
För att säkerställa att scriptet körs åtmninstone en gång kan man kombinera while
med do
så här:
var count = 1;
do {
alert (count);
count++;
} while (count < 1)
I fallet ovan kommer villkoret aldrig vara uppfyllt (kolla på det så kommer du förstå varför) men det kommer ändå köras en gång, eftersom det använder do
for
I stället för att använda sig av kombinationen do
… while
an man använda sig av en något annorlunda form av loop, for
-loopen. for
har fördelen atta den sammanfattar en hel del av det som vi gjorde ovan. Den gör ungefär:
börja;
while (villkor) {
satser;
ökning; }
Men skrivs på ett prydligare sätt:
for (ursprungsvärde; värdet som testas (villkor); ändra värde) {
satser;
}
Om vi tar samma loop som ovan men omformulerar den till en for
-loop kan det se ut så här:
for (var count = 1; count < 11; count++ ) {
alert (count);
}
Den vanligaste for
-loopen är den som används för att loopa igenom en array. Vi kan ta det tidigare Motorheadexemplet och testa med:
var motorhead = Array("Lemmy", "Phil", "Mikkey Dee", "Larry", "Lucas", "Philthy Phil", "Eddie", "Brian", "Würzel", "Pete");
for (var count = 0 ; count < motorhead.length; count++ ) {
alert(motorhead[count]);
}