JavaScript

Kontrollslingor

Programmering går i stort sett ut på att utföra olika saker beroende på hur olika variabler ser ut eller vilka val som användaren har gjort. För att kunna hantera dessa situationer behövs något som kallas kontrollstrukturer (kontrollslingor) som ger programmeraren stöd att jobba med val, eller olika vägar i programmet.

En sådan struktur är if-satsen. If är direktöversatt till svenska "om" och det är precis vad den gör. I kod kan det se ut såhär:

if (tal > 5) {

	skrivUt('Talet är större än 5');

}

Det fungerar alltså som :


om (villkor är sant) 

{

	gör det som står innanför blocket

}

Tillsammans med if finns else som är ett block med det som ska hända om inte villkoret för if-satsen är uppfylld.


if (tal > 5) {

	skrivUt('Talet är större än 5');

}

else

{

	skrivUt('Talet är INTE större än 5. 

	        Kanske 5, kanske mindre.');

}

Ett tredje sätt att skriva är att rada upp if-satser som hör ihop med if och else if. Det betyder att om den första if-satsen inte är uppfylld kollas om den andra är uppfylld. Men om villkoret för den första är uppfyllt så kommer den andra satsen aldrig att kollas.


if (tal > 5) {

	skrivUt('Talet är större än 5');

}

else if (tal == 5)

{

	skrivUt('Talet är 5. Varken mindre eller större');

}

else 

{

	skrivUt('Då måste talet vara mindre än 5');



}

If-satser i olika former är ett mycket bra verktyg för programmeraren när det har med val att göra men det kan också bli invecklat om det handlar om många alternativ.

Konstruktionen while (så länge som) är till för att utföra ett kodblock så länge ett villkor är uppfyllt.


var tal = 1;

while (tal < 5)

{

	skrivUt(tal);

	tal = tal + 1;

}

När while-satsen startar har variabeln tal värdet 1 och villkoret är uppfyllt. Kodblocket genomförs och tal skrivs ut och tilldelas sedan värdet 2. Kodblocket är nu slut och programmet hoppar tillbaka och kollar om villkoret fortfarande är uppfyllt. Eftersom värdet på tal är 2 är villkoret fortfarande uppfyllt och programmet kommer att fortsätta på detta sätt tills tal har räknats upp till 5 då villkoret längre inte gäller.

Ett annat sätt att räkna upp lite mer strukturerat är med hjälp av en for-slinga. I en for-slinga har man lite mer bestämt utseende än while. Det kan se ut enligt följande:


for (i = 0; i < 5; i++)

{

	skrivUt("Nu är värdet " + i)

}

Till "villkorsdelen" av loopen hör tre delar.

Först anges ett startvärde för den variabel som vi kallar loopvariabel. I det här fallet tilldelas variabeln i värdet 0.
for (i = 0 ; i < 5; i++)
Efter det sätts villkoret upp för när kod-blocket ska utföras. Villkoret för att kodblocket ska utföras är att variabeln i är mindre än 5.
for (i = 0 ; i < 5 ; i++)
Till sist bestäms vad som ska göras med loopvariabeln efter att kodblocket har utförts. För varje steg räknas variablen i upp med 1. Det betyder att kodblocket kommer att utföras 5 gånger (för värdena 0-4 på variabeln i).
for (i = 0 ; i < 5; i++)

Jämför vi for med while är alltså både startvärde och förändring av variabeln inbyggd i for medan programmeraren själv måste hålla reda på detta i while.