VILLKOR / LOOPAR - KOMMANDOT WHILE

Tidigare har du använt kommandot for som kör en loop ett begränsat antal gånger.

Ett annat kommando är while som körs så länge ett villkor uppfylls, t.ex. att summan är mindre än 10.

while har fördelen att den fungerar för alla sorts loopar, medan for bara fungerar när man redan från start vet antalet gånger loopen ska köras. Å andra sidan kan man med while hamna i situationen att loopen snurrar i all evighet (lätt hänt vid felkodning). Då måste man avbryta körningen, t.ex. med CTRL/C eller att stänga ner webbfönstret.

Med en while-sats upprepar du alltså ett block med kod så länge ett logiskt villkor är sant.

Grundkoden är:

while villkor:     
    <en eller flera rader kod som upprepas så länge villkor är sant>

Öva 1

tal = 100
antal_loop = 0
while tal <= 1000:
  print(tal)
  tal = tal + 100
  antal_loop = antal_loop + 1
print("Loopen kördes",antal_loop,"gånger.")
  1. Läs och förstå koden ovan. Kör koden "run" och kontrollera att du förstår.
  2. Ändra i koden så att programmet enbart skriver ut alla jämna tal upp till 30 och på slutet redovisar antalet loopar som har körts.

AVSLUTANDE UPPGIFT

Du ska skriva en kod som summerar alla heltal mellan ett godtyckligt start- och sluttal. 1. Ta bort all kod i fönstret och skriv eller kopiera in nedanstående (kontrollera att indraget blir korrekt):

print("Programmet summerar alla heltal mellan två valda heltal")

tal = int(input("Ange ett heltal som starttal: "))

sluttal = int(input("Ange ett högre heltal som sluttal: "))

while tal <= sluttal:
    tal = tal + 1

Kommentar: Här har vi kombinerat två koder - input() och int() så att det skrivs på en rad i stället för två.

Programmet körs så att det som är i den innersta parentesen input() körs först och därefter det i den yttre parentesen int().

Kommandot input skriver ut en textsträng på skärmen och väntar på att användaren skriver in ett tal. Värdet på talet lagras i variabeln starttal. Variabeln blir automatiskt satt till en textsträng.

Kommandot int() gör om textsträngen till ett tal (fungerar bara om texten består av siffror).

2. Lägg till en tom rad efter första raden kod och skapa variabeln summa som ges värde 0.

3. Lägg till en rad överst i loopen (ovanför raden tal = tal + 1).

Där skriver du en kod som ändrar värdet på variabeln summa genom att addera värdet på variabeln tal med variabeln summa.

4. Programmet avslutas med att skriva ut texten Summan av talen är XXX. (XXX ersätts med korrekt summa). Här får du tänka lite extra, du vill ju inte att summan ska skrivas ut varje gång loopen körs, utan enbart slutsumman. Vad behöver du tänka på då?

5. Kör programmet med talen 2 och 6 som input och kontrollera att summan är 20.

Facit

Avslutande uppgift