Læringsmål

  • Kan forklare forskellen på for, while, do-while og foreach
  • Kan bruge loops til at gentage kode baseret på en betingelse
  • Kan anvende break og continue til at styre et loop
  • Kan iterere over arrays, lister og dictionaries med for og foreach
  • Kan bruge nested loops til at gennemløbe lister af lister

Løkker og iterationer

Loops (løkker) er grundlæggende programmeringsteknikker, der gentager en blok kode, indtil en betingelse er opfyldt. I C# findes for, while, do-while og foreach — hver med sit eget brugsscenarie.

Løkke Brug når
for Du ved, hvor mange gange du skal iterere
while Gentagelse baseret på en betingelse
do-while Mindst én iteration skal køre
foreach Gennemløb af en samling uden indeks

for-løkken

for bruges, når du ved, hvor mange gange koden skal gentages. Den har tre dele: initialisering, betingelse og opdatering.

  • int i = 0 — startværdi (kører én gang)
  • i < 10 — betingelse (tjekkes før hver iteration)
  • i++ — opdatering (kører efter hver iteration, samme som i = i + 1)

Loopet udskriver tallene 0 til 9.

Videoer

Se det i praksis

Branching and While Loops [Pt 10] | C# for Beginners

For Loops [Pt 11] | C# for Beginners

while-løkken

while gentager en blok, så længe betingelsen er sand — tjekkes før hver iteration:

Brug while, når antallet af iterationer afhænger af en betingelse — fx brugerinput eller en flag-variabel.

do-while-løkken

do-while minder om while, men kører mindst én gang, fordi betingelsen tjekkes efter koden:

Brug do-while, når menuen eller prompten skal vises mindst én gang — fx "Vil du prøve igen?"

foreach-løkken

foreach itererer over alle elementer i en samling uden at håndtere indeks:

foreach er den simpleste løkke, når du bare skal læse hvert element. Du kan ikke ændre samlingens størrelse under en foreach (fx Add/Remove) — det giver runtime-fejl.

break og continue

break afslutter løkken med det samme:

continue springer resten af den nuværende iteration over og går videre til næste:

Brug break når du har fundet det, du leder efter. Brug continue til at springe ugyldige elementer over.

Iteration over arrays

Et array er en samling af elementer af samme type med fast længde.

Med for — når du har brug for indeks:

Med foreach — når du bare skal læse elementer:

Iteration over lister

En List er dynamisk — du kan tilføje og fjerne elementer. Begge løkketyper virker:

Med for:

Med foreach:

Nested loops — lister af lister

Når hvert element også er en liste (fx en matrix), bruger du nested loops — en løkke inde i en anden:

Med foreach:

Nested loops bruger du i praksis til fx IP-adresse-konvertering og binær matematik — se kapitlet Binary Numbers & IP Addresses.

Iteration over Dictionary

En Dictionary gemmer nøgle/værdi-par. foreach er den naturlige måde at gennemløbe den:

Du kan også iterere over nøgler eller værdier separat:

Praktisk eksempel — sum og gennemsnit

Løkker er essentielle til beregninger over mange værdier:

Mønsteret initialiser → loop → akkumuler bruger du konstant i GF2.

Git-trin

  • Branch: main
  • Commit: feat: loekker og iteration

Opsummering

  • for er bedst når du kender antal iterationer; while og do-while når betingelsen styrer loopet
  • foreach er perfekt til arrays, lister og dictionaries
  • break stopper løkken; continue springer til næste iteration
  • Nested loops gennemløber lister af lister og 2D-data
  • Dictionaries kan itereres som nøgle/værdi-par, eller kun keys/values

Test din viden

Spørgsmål 1

Hvilken løkke bruger du, når du kender antallet af iterationer på forhånd?

Spørgsmål 2

Hvad er forskellen på while og do-while?

Spørgsmål 3

Hvad gør break i en løkke?

Spørgsmål 4

Hvad gør continue i en løkke?

Spørgsmål 5

Hvorfor bør du undgå at kalde .Add() på en liste under en foreach?

Spørgsmål 6

Hvad er forskellen på .Length på et array og .Count på en liste?

Spørgsmål 7

Hvordan gennemløber du en Dictionary med både nøgle og værdi?