Hjem » Siste artikler » Forstå løkker i programmering: slik bruker du for og while uten å gå i sirkler

Forstå løkker i programmering: slik bruker du for og while uten å gå i sirkler

Hovedillustrasjon
Hovedillustrasjon. Foto: Joan Gamell / Unsplash.

Løkker er en av de første tingene du møter i kode, men også en av tingene som oftest skaper forvirring for nye utviklere. Samtidig er de helt avgjørende for å slippe gjentakende manuelt arbeid i koden.

I denne artikkelen får du en jordnær forklaring på hva løkker gjør, hvordanforogwhileskiller seg fra hverandre, og hvordan du unngår typiske nybegynnerfeil. Eksemplene er enkle å overføre til de fleste populære språk, som JavaScript, C#, Java og andre.

Hva er en løkke, egentlig?

En løkke lar deg kjøre den samme koden flere ganger etter hverandre, gjerne med små endringer hver gang. I stedet for å skrive den samme blokken med kode 10 ganger, kan du skrive den én gang og la løkken kjøre den 10 runder.

Det gir deg kortere, ryddigere og mer fleksibel kode. Hvis du senere vil gå fra 10 til 100 runder, endrer du ett tall i stedet for å skrive om alt.

For-løkke: når du vet hvor mange ganger

Enfor-løkkebrukes typisk når du vet hvor mange ganger noe skal gjentas, eller når du skal gå systematisk gjennom en samling, som en liste eller et array.

Strukturen er ofte omtrent slik (språkene varierer litt i syntaks):

Eksempel i JavaScript-lignende stil:

for (let i = 0; i < 5; i++) {
  console.log("Runde: " + i);
}

Her skjer tre ting i parentesen:

  • Start:let i = 0; lager en teller som starter på 0.
  • <liBetingelse:i < 5; sier at løkken fortsetter så lenge i er mindre enn 5.
  • Endring:i++; øker i med 1 for hver runde.

En praktisk bruk av for-løkker

Si at du vil skrive ut alle tall fra 1 til og med 10, for eksempel for å teste noe eller bygge en enkel meny:

for (let tall = 1; tall <= 10; tall++) {
  console.log("Valg " + tall);
}

Hvis du senere vil ha 20 valg i stedet for 10, endrer du bare tallet i betingelsen. Det er denne fleksibiliteten som gjør løkker så nyttige i alt fra små skript til større applikasjoner.

While-løkke: når du ikke vet hvor mange ganger

Enwhile-løkkeer fin når du ikke på forhånd vet hvor mange ganger noe skal gjentas, men du har en betingelse som må være sann for at det skal fortsette.

Den generelle formen ser ofte slik ut:

while (betingelse) {
  // kode som kjører så lenge betingelse er sann
}

Eksempel: du vil kjøre en løkke så lenge et tall er mindre enn 100:

let verdi = 1;
while (verdi < 100) {
  console.log(verdi);
  verdi = verdi * 2;
}

Forskjellen i måten du tenker

En nyttig huskeregel er:

  • For-løkke:“Gjør dette n ganger” eller “Gå gjennom alle elementene i denne listen”.
  • While-løkke:“Gjør dette så lenge en tilstand er oppfylt”.

Mange språk har ogsåfor-each-varianter som er spesielt laget for å gå gjennom samlinger, for eksempel lister med brukere eller produkter. De hjelper deg å skrive mer lesbar kode når du ikke trenger en teller.

Typiske nybegynnerfeil med løkker

Løkker kan skape noen klassiske problemer. Her er de vanligste og hva du kan gjøre med dem.

1. Uendelig løkke

Tematisk illustrasjon
Tematisk illustrasjon. Foto: James Harrison / Unsplash.

En uendelig løkke skjer når betingelsen aldri blir falsk. Da stopper ikke koden, og programmet kan fryse eller bruke unødvendig mye ressurser.

let i = 0;
while (i < 5) {
  console.log(i);
  // mangler i++ her
}

Her øker aldri i, så den vil alltid være mindre enn 5. Løsningen er å sørge for at noe inne i løkken faktisk endrer det som avgjør betingelsen.

2. En runde for mye eller for lite

Det er lett å blande < og <=, eller starte på 0 når du egentlig mente 1. Dette gir fort “off by one”-feil, for eksempel at du bare kjører 9 ganger når du trodde du kjørte 10.

En god vane er å skrive ned hva du forventer før du koder: “Jeg vil ha tallene 1 til og med 10” og så teste at løkken faktisk skriver ut nettopp det.

3. Endring av listen du løkker over

Hvis du går gjennom en liste og samtidig legger til eller fjerner elementer fra den, kan du hoppe over elementer eller få feil indeks. I slike tilfeller kan det være tryggere å:

  • Gå gjennom en kopi av listen.
  • Lagre endringene i en ny liste og ta dem i bruk etterpå.
  • Gå baklengs gjennom listen hvis du skal slette elementer.

Slik velger du riktig type løkke

Når du står der og skal skrive kode, kan du bruke denne enkle beslutningsrekken:

  1. Skal du gå element for element gjennom en liste eller et array? Brukforellerfor-each.
  2. Vet du antall repetisjoner på forhånd? Bruk som regelfor.
  3. Skal noe skje så lenge en tilstand holder seg sann, og du ikke vet antall runder? Brukwhile.

Det viktigste er at du selv lett kan lese og forstå koden en uke senere. Hvis en type løkke gjør koden din mer intuitiv, er det nesten alltid et godt valg.

Gode vaner når du jobber med løkker

Du trenger ikke avanserte teknikker for å skrive gode løkker, men noen enkle vaner hjelper mye:

  • Gi variabler forståelige navn:index eller teller er ofte bedre enn bare i når koden blir større.
  • Hold løkken liten:Hvis løkken inneholder masse kode, vurder å flytte deler av logikken ut i egne funksjoner eller metoder.
  • Logg midlertidig:Bruk utskrift eller logging av variabler inne i løkken når du feilsøker. Det gjør det lettere å se hvilken runde som går galt.
  • Vær forsiktig med break og continue:De kan være nyttige, men for mange hopp ut og over kan gjøre koden vanskelig å følge.

Veien videre: bygg små øvelser

Det mest effektive du kan gjøre for å bli trygg på løkker er å lage små, konkrete øvelser. Her er noen forslag:

  • Skriv ut alle partall mellom 1 og 100.
  • Gå gjennom en liste med navn og skriv bare ut de som er lengre enn 4 tegn.
  • Summer alle tallene i en liste med en løkke.
  • Lag en while-løkke som spør brukeren om input til de skriver et gyldig svar.

Start enkelt, test mye og endre én ting om gangen. Etter hvert vil du oppdage at løkker ikke bare er et abstrakt konsept, men et konkret verktøy du bruker naturlig i nesten all kode du skriver.

0 kommentarer