Løkker
La oss se for oss at vi ønsker å skrive ut noe til nettsida mange ganger. Det kan være å skrive noe en gang, eller 200 ganger. Skriv følgende linje, og kopier den fem ganger:
document.write("There are 2 strawberries")
Gå så igjennom og legg til en på hver rad etter den første:
document.write("There are 2 strawberries")
document.write("There are 3 strawberries")
document.write("There are 4 strawberries")
document.write("There are 5 strawberries")
document.write("There are 6 strawberries")
La oss si at vi ønsket å fortsette å telle slik opp til 500, ved å kopiere og lime inn tekst. Det ville vært veldig ineffektivt.
Men heldigvis er datamaskiner flinke til å gjøre en operasjon flere ganger.
Vi begynner med en kommentert-ut linje:
// while () {
}
while tar inn en boolsk verdi, på samme måte som en if-setning.
La oss lage en variabel, et par linjer over while-setningen:
let strawberryCount = 2
Så kan vi inni parantesene til while-setningen skrive:
// while (strawberryCount < 200) {
}
I kroppen til while-setningen kan vi legge inn teksten vår om hvor mange jordbær det er, men la oss bruke variabelen istedenfor å hardkode et tall:
document.write("There are " + strawberryCount + " strawberries.")
Under denne linjen igjen, fortsatt innenfor kroppen til while-setningen kan du legge til
strawberryCount = strawberryCount + 1
Denne tar verdien den har fra før, og plusser på en. Så hvis verdien er 2, så vil den legge til en, slik at verdien blir 3.
Når vi setter alt sammen får vi:
let strawberryCount = 2
// while (strawberryCount < 200) {
document.write("There are " + strawberryCount + " strawberries.")
strawberryCount = strawberryCount + 1
}
Hvis du nå fjerner kommentaren, vil du se i vinduet under, at den printer opp til 199.
Hvis vi ville at den skulle telle helt opp til 200 kunne du endret sammenligningsoperatoren fra mindre-enn < til mindre-eller-lik <=.
Så hva skjer? Vel, en while-løkke vil fortsette å gjøre det som foregår i while-kroppen helt til det som står i parantesen ikke lenger returnerer true. Man bør være obs på å lage evige løkker, som f.eks while (true), eller andre ting som alltid vil returnere true, ettersom du da kan kræsje browseren, eller programmet du holder på med.
For å unngå en evig løkke, kommenter ut while-linja. Det finnes en kortere måte å skrive
strawberryCount = strawberryCount + 1
Ved å skrive:
strawberryCount++
Disse to linjene gjør akkurat det samme.
For å gjøre det mer leselig, kan vi legge til et linjeskift i koden med en <br>-tag:
let strawberryCount = 2;
while (strawberryCount <= 200) {
document.write("There are " + strawberryCount + " strawberries.<br>")
strawberryCount++
}