Slik bruker du break og continue i Python

Lær å bruke break og continue i Python for å styre løkker. Avbryt tidlig eller hopp over iterasjoner.

Videoforhåndsvisning

Opprett konto for å se video

Det er helt gratis og tar under 30 sekunder

Opprett gratis kontoHar du konto? Logg inn

Du itererer gjennom en lang tekst og leter etter en bestemt bokstav. Når du finner den, er det ingen grunn til å fortsette resten av løkken. Med break avslutter du løkken umiddelbart. Noen ganger vil du derimot hoppe over ett element og fortsette med resten. Da bruker du continue. Begge nøkkelordene gir deg presis kontroll over løkkene dine i Python.

break avslutter løkken

Når Python treffer break, stopper den løkken med en gang og hopper til koden etter løkken. Ingenting mer inne i løkken kjører for den aktuelle runden, og det blir ingen flere runder:

tekst = "teknologi"

for bokstav in tekst:

    if bokstav == "n":

        break

    print(bokstav)

Denne koden skriver ut t, e, k. Når løkken når bokstaven "n", treffer den break og stopper helt. Bokstavene o, l, o, g, i blir aldri behandlet.

Break brukes oftest sammen med en if-setning inne i løkken. If-setningen sjekker om det er på tide å stoppe, og break utfører selve stoppet.

break i while-løkker

Break er spesielt nyttig i while-løkker, der du kanskje oppdager midt i løkkekroppen at du vil avslutte. Her er den samme bokstavsjekken med en while-løkke:

tekst = "teknologi"

indeks = 0

while indeks < len(tekst):

    bokstav = tekst[indeks]

    if bokstav == "n":

        break

    print(bokstav)

    indeks += 1

Resultatet er identisk: t, e, k. Forskjellen er at du i while-løkken må håndtere indeksen selv. Break fungerer på nøyaktig samme måte i begge løkketypene.

continue hopper over resten av runden

Der break avslutter hele løkken, gjør continue noe mildere. Den hopper over resten av koden i den aktuelle runden og starter neste runde umiddelbart:

tekst = "teknologi"

for bokstav in tekst:

    if bokstav == "n":

        continue

    print(bokstav)

Her skrives t, e, k, o, l, o, g, i. Alle bokstavene unntatt "n". Når løkken treffer "n", hopper continue tilbake til toppen av løkken og går videre med neste bokstav. Resten av løkkekroppen (print-linjen) kjører ikke for den runden.

Vær forsiktig med continue i while-løkker

I en for-løkke håndterer Python automatisk neste iterasjon. I en while-løkke styrer du telleren selv, og det skaper en felle. Plasserer du indeksoppdateringen etter continue, blir den aldri kjørt for den runden du hopper over:

tekst = "teknologi"

indeks = 0

while indeks < len(tekst):

    bokstav = tekst[indeks]

    if bokstav == "n":

        indeks += 1

        continue

    print(bokstav)

    indeks += 1

Legg merke til at indeks += 1 står to steder: én gang inne i if-blokken (før continue), og én gang på slutten av løkken. Uten den første ville løkken blitt uendelig, fordi indeksen aldri øker når du treffer "n". Continue hopper over alt som står under seg, inkludert den vanlige indeksoppdateringen.

Når du bør bruke break og continue

Break er det naturlige valget når du søker etter noe i en sekvens og vil stoppe så fort du finner det. Typiske bruksområder:

  • Finne den første forekomsten av en verdi
  • Avslutte en meny-løkke når brukeren velger "avslutt"
  • Stoppe en while True-løkke basert på en betingelse inne i løkken

Continue passer når du vil filtrere bort enkeltelementer uten å stoppe hele prosessen:

  • Hoppe over tomme linjer når du behandler tekst
  • Ignorere ugyldige verdier i en liste
  • Fortsette til neste element når ett element ikke oppfyller et krav

Begge gjør koden mer lesbar enn alternativet, som ofte er dypt nøstede if-setninger. I stedet for å pakke hele løkkekroppen inn i en if, kan du snu betingelsen og bruke continue for å hoppe over det du ikke vil ha.

Break i nøstede løkker

Har du en løkke inne i en annen, avslutter break bare den innerste løkken den står i. Den ytre løkken fortsetter som normalt:

for i in range(3):

    for j in range(3):

        if j == 1:

            break

        print(i, j)

Du får 0 0, 1 0, 2 0. For hver runde i den ytre løkken starter den indre løkken, men den avbrytes med break allerede når j er 1. Den ytre løkken kjører alle sine tre runder uforstyrret.

while True med break for menyvalg

Et vanlig mønster er å kjøre en while True-løkke og bruke break for å avslutte når brukeren velger det:

while True:

    valg = input("Skriv 'q' for å avslutte: ")

    if valg == "q":

        print("Avslutter")

        break

    print("Du skrev:", valg)

Løkken kjører i det uendelige helt til brukeren skriver "q". Da treffer break, og programmet går videre til koden etter løkken. Mønsteret er vanlig i tekstbaserte menyer, spill og programmer som skal kjøre til brukeren aktivt avslutter.

Neste steg

Med break og continue har du full kontroll over for-løkker og while-løkker. Neste steg er å begynne å jobbe med datastrukturer som lister og ordbøker, der løkker med break og continue virkelig viser sin styrke. Python-dokumentasjonen har mer om break og continue i løkker.

Denne videoen er hentet fra kurset Python for nybegynnere på Utdannet.no. I kurset bruker du break og continue i stadig mer realistiske programmer, kombinert med lister, funksjoner og feilhåndtering.