If you're seeing this message, it means we're having trouble loading external resources on our website.

Om du är bakom en brandvägg eller liknande filter, vänligen se till att domänerna *. kastatic.org och *. kasandbox.org inte är blockerade.

Huvudinnehåll

Repetition: Loopar

Detta är en sammanfattning av vår genomgång av loopar.
När vi skriver program hander det ofta att vi vill upprepa lite kod om och om igen, eller upprepa och samtidigt justera en detalj i koden varje upprepning. För att slippa skriva koden flera gånger kan vi använda en loop. JavaScript har två sorters loopar, en while loop och en for loop.
A while loop är ett sätt att upprepa kod till dess att ett villkor blir false. Till exempel kommer den här loopen att visa värdet på y (vid position 30, y) så länge som y är mindre än 400. Loopen lägger till 20 till y varje gång den körs, så att y startar med 40 men blir i nästa steg till 60, 80, 100, 120, etc.
var y = 40;
while (y < 400) {
    text(y, 30, y);
    y += 20;
}
Det är viktigt att villkoret i parentesen blir falskt vid något tillfälle - annars får vi vad som kallas evighetsloop! Det skulle hända om vi tog bort y + = 20, eftersom y då skulle vara 40 för alltid, och alltid vara mindre än 400, och programmet skulle aldrig veta när det ska sluta.
var y = 40;
while (y < 400) {
    text(y, 30, y);
}
for-loopen liknar while-loopen, men har en mer specialiserad syntax. Programmerare uppfann for-loopen när de insåg att de väldigt ofta gjorde samma tre saker - skapa en loop-variabel (som y ovan), öka den med viss mängd och kontrollera att den är mindre än ett värde. En for-loop-syntax har särskilda platser för var och en av de tre sakerna. Här är samma loop som den första loopen ovan, som en for-loop:
for (var y = 40; y < 400; y += 20) {
    text(y, 30, y);
}
Loopar kan också vara nästlade. Det är faktiskt väldigt vanligt att nästla loopar, speciellt i 2-d-ritningar, eftersom det gör det enkelt att rita rasterliknande former. När vi nästlar en loop i en annan loop säger vi till programmet att "gör den här saken X många gånger, och för varje gång du gör det, gör du också den andra saken Y många gånger." Föreställ dig att vi ritar ett rutnät - vi skulle vilja säga till programmet "skapa en kolumn 10 gånger, och för varje kolumn du skapar så skapa också 15 celler inuti den kolumnen." Så här kan vi använda nästlade loppar för att få till det:
for (var col = 0; col < 10; col++) {
    for (var row = 0; row < 15; row++) {
        rect(col*20, row*20, 20, 20);
    }
}
När ska du använda en for-loop eller en while-loop? Det är upp till dig. Många programmerare föredrar for-loopar eftersom det är svårare att råka skapa en evighetsloop med dom (eftersom det är svårare att glömma att öka räkne-variabeln), men ibland passar det bättre med en while-loop. Prova dem båda!

Vill du gå med i konversationen?

Inga inlägg än.
Förstår du engelska? Klicka här för att se fler diskussioner på Khan Academys engelska webbplats.