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.
i värdet 0.
i är mindre än 5.
i upp med 1. Det betyder att kodblocket kommer att
utföras 5 gånger (för värdena 0-4 på variabeln 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.