2.10 Loopar
En loop är en programsats där man har ett block av satser (omgivet av klamrar) som upprepas om och om igen, så länge ett villkor är sant (eller tills ett villkor blir sant). Loopar kan skrivas på flera olika sätt och detta exempel visar tre av de vanligaste. Alla loopar kan också avbrytas med en break
-sats inuti loopen. Denna brukar då ingå i en if
-sats.
- Exempel på användning av en
for
-loop, för att gå igenom något ett bestämt antal gånger. - Exempel på användning av två olika varianter av
while
-loop. - Exempel där en loop används för att lägga till HTML-kod.
18 min.
Sammanfattning
- I en
for
-loop har man först en initiering av en loop-variabel, t.ex.let i = 0;
Den brukar deklareras medlet
, så att den är lokal och existerar endast i loopen. Sedan har man ett villkor, där man oftast kontrollerar loop-variabeln mot någon gräns, t.ex.i < 10;
Loopen genomlöps så länge villkoret är sant. Sist har man en sats som räknar upp eller ner loop-variabeln, t.ex.i++
, om den ska räknas upp med1
för varje varv. - Med
for (let i = 0; i < 10; i++)
får man en loop som genomlöps 10 gånger. Loop-variabeln börjar på 0 och räknas sedan upp till 1, 2, etc, tills den blir 10. Då är inte längre villkoret sant och loopen avbryts. Loopen genomlöps alltså för värdena 0 till 9 för loop-variabeln. - En
while
-loop fungerar som enfor
-loop utan loop-variabel. Man har endast ett villkor. Inuti loopen måste man ha någon sats som förändrar något i villkoret, t.ex. förändrar en variabel som ingår i villkoret. I annat fall blir det en oändlig loop. - I både en
for
- och enwhile
-loop kontrolleras villkoret i början av varje varv. Är villkoret sant, genomlöps loopen en gång till. Är villkoret falskt, avbryts loopen och programmet fortsätter med programsatsen efter loopen. Är villkoret falskt redan från början, genomlöps aldrig loopen. - I en
do-while
-loop kontrolleras villkoret efter varje varv, för att se om loopen ska genomlöpas en gång till. Endo-while
-loop genomlöps åtminstone en gång, även om villkoret är falskt redan från början. - Alla loopar kan avbrytas med
break
inuti loopen. Denna sats brukar ingå i enif
-sats, där man har något annat villkor än det som finns ifor
- ellerwhile
-satsen.
Egna övningar
Här följer ett förslag på några egna övningar. Öppna filen test.html och test.js och utför följande:
- Skriv en
for
-loop som genomlöps 20 gånger. I loopen ska du generera ett slumptal mellan 1 och 50 och skriva ut det tillsammans med något skiljetecken i elementet för resultat, så att alla 20 talen visas. - Lägg till en
if
-sats, där du kontrollerar om slumptalet ligger mellan 20 och 30. Avbryt i så fall loopen medbreak
. - Skriv en
while
-loop, där du generarar och skriver ut slumptal mellan 1 och 50, så länge talet är större än föregående tal.- Kontrollen ska ske i
while
-satsens villkor. Du behöver en variabel för föregående värde och en för det nya.
- Kontrollen ska ske i