Kontrollstrukturer i JavaScript
Kontrollstrukturer är byggstenarna som styr flödet i ett program. Med hjälp av dessa kan vi bestämma vilken kod som ska köras, när och hur många gånger. De vanligaste kontrollstrukturerna är villkorssatser (if/else) och loopar (for, while).
Villkorssatser (if, else if, else)
Med villkorssatser kan vi utföra olika kod beroende på om ett visst villkor är sant eller falskt.
Syntax:
if (villkor) {
// kod som körs om villkoret är sant
} else if (annatVillkor) {
// kod som körs om det andra villkoret är sant
} else {
// kod som körs om inget av villkoren ovan är sant
}
Exempel:
let age = 18;
if (age >= 18) {
console.log("Du är myndig.");
} else {
console.log("Du är inte myndig.");
}
Jämförelseoperatorer
För att skapa villkor använder vi jämförelseoperatorer:
===
lika med (värde och typ)!==
inte lika med (värde och typ)==
lika med (bara värde, undvik i modern JS)!=
inte lika med (bara värde, undvik i modern JS)>
större än<
mindre än>=
större än eller lika med<=
mindre än eller lika med
Exempel:
let x = 5;
if (x !== 10) {
console.log("x är inte 10");
}
Logiska operatorer
Kombinera flera villkor med logiska operatorer:
&&
och (båda villkoren måste vara sanna)||
eller (minst ett villkor måste vara sant)!
inte (vänder på sant/falskt)
Exempel:
let temp = 20;
if (temp > 15 && temp < 25) {
console.log("Lagom varmt!");
}
Switch-sats
När du har många möjliga värden att jämföra mot kan switch
vara tydligare än många if/else
.
Syntax:
switch (uttryck) {
case värde1:
// kod
break;
case värde2:
// kod
break;
default:
// kod om inget matchar
}
Exempel:
let day = "tisdag";
switch (day) {
case "måndag":
console.log("Ny vecka!");
break;
case "tisdag":
console.log("Andra dagen.");
break;
default:
console.log("Någon annan dag.");
}
Loopar
Loopar används för att upprepa kod flera gånger.
For-loop
Syntax:
for (start; villkor; steg) {
// kod som upprepas
}
Exempel:
for (let i = 0; i < 5; i++) {
console.log("i är nu: " + i);
}
While-loop
Syntax:
while (villkor) {
// kod som upprepas så länge villkoret är sant
}
Exempel:
let count = 0;
while (count < 3) {
console.log("Räknare: " + count);
count++;
}
Break och continue
break
– Avbryter loopen direkt.continue
– Hoppar över resten av koden i loopen och går till nästa varv.
Exempel:
for (let i = 0; i < 5; i++) {
if (i === 3) break; // Avbryter loopen när i är 3
if (i === 1) continue; // Hoppar över när i är 1
console.log(i);
}
// Skriver ut: 0, 2
Sammanfattning
- Kontrollstrukturer styr flödet i programmet.
- Använd
if
,else if
,else
ochswitch
för att fatta beslut. - Använd
for
ochwhile
för att upprepa kod. - Jämförelse- och logiska operatorer hjälper dig att skapa villkor.
break
ochcontinue
ger extra kontroll i loopar.
Att behärska kontrollstrukturer är avgörande för att kunna skriva logisk och flexibel kod. I nästa avsnitt ska vi se hur JavaScript kan interagera med själva HTML-sidan.
Övningar
1. While-loop
Skriv en while-loop som räknar ner från 10 till 0 och skriver ut varje tal.
let count = 10;
// fortsätt med din lösning
2. Array-transformation
Skapa en array med temperaturer i Celsius och använd map för att konvertera dem till Fahrenheit. (Formel: F = C * 9/5 + 32)
// array med celsius temperaturer
let celsiusTemp = [0, 10, 20, 30, 40];
// fortsätt med din lösning
3. Filtrering med forEach
Använd forEach för att skriva ut alla jämna tal i en array.
// array siffror
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// fortsätt med din lösning
Lösningsförslag
Övning 1
let count = 10;
while (count >= 0) {
console.log(count);
count--;
}
// Utskrift: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
Övning 2
let celsiusTemp = [0, 10, 20, 30, 40];
let fahrenheitTemp = celsiusTemp.map(temp => temp * 9/5 + 32);
console.log(fahrenheitTemp);
// Utskrift: [32, 50, 68, 86, 104]
Övning 3
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.forEach(num => {
if (num % 2 === 0) {
console.log(num);
}
});
// Utskrift: 2, 4, 6, 8, 10