Programmering nivå 2

Kap 1.5 – Loopar och upprepning

Använd for- och while-loopar för att upprepa kod på ett kontrollerat sätt.

Mål med lektionen

  • Förstå skillnaden mellan for- och while-loopar.
  • Veta när du ska använda vilken typ av loop.
  • Kunna kombinera loopar med funktioner och villkor.
  • Använda break och continue på ett medvetet sätt.

Så här lär du dig bäst

Börja med att titta på vad koden försöker upprepa - vad är mönstret? Skriv egna exempel, men ändra siffror, ordning och logik för att se hur programflödet påverkas. Det är så du tränar upp förmågan att använda loopar med självförtroende.

Vad är en loop?

En loop används när du vill upprepa något - till exempel skriva ut flera rader, fråga flera gånger eller gå igenom en lista.

for-loop - När du vet hur många gånger

for i in range(5):
    print(f"This is line {i}")

Denna loop kör fem gånger (från 0 till 4). Variabeln i ökar automatiskt varje varv.

Exempel - summera tal:

total = 0
for i in range(1, 6):
    total += i
print(f"Sum: {total}")

while-loop - När du inte vet hur många gånger

En while-loop kör så länge ett villkor är sant.

password = ""
while password != "secret":
    password = input("Enter password: ")
print("Access granted.")

Det här används ofta för inmatning eller oklara förlopp där du inte vet i förväg hur många iterationer som behövs.

break och continue

  • break avslutar loopen direkt.
  • continue hoppar över resten av ett varv och går till nästa.

Exempel:

for i in range(10):
    if i == 7:
        break
    if i % 2 == 0:
        continue
    print(i)

Denna kod skriver ut alla udda tal före 7.

Kombinera loopar och funktioner

Loopar blir tydligare när du bryter ut delar i funktioner.

def print_menu():
    print("1. Say hello")
    print("2. Exit")

def run():
    while True:
        print_menu()
        choice = input("Choose option: ")
        if choice == "1":
            print("Hello!")
        elif choice == "2":
            break
        else:
            print("Invalid option.")

run()

Här används while True för en meny som körs tills användaren vill avsluta.

Öva själv

  1. Skriv en for-loop som skriver ut alla tal från 1 till 20 som är delbara med 3.
  2. Skapa en while-loop som fortsätter att fråga användaren om en gissning tills hen gissar rätt på ett förutbestämt tal.
  3. Kombinera en meny och funktioner som i exemplet ovan men med tre alternativ: skriv ett namn, räkna upp till ett tal, avsluta.

Reflektion

  • När använder du for och när passar while bättre?
  • Hur kan du göra en loop mer läsbar?
  • Har du testat att bryta en loop med break? Hur påverkade det flödet?

Tillbaka till Kapitel 1