Välj kapitel {{ courseTrack.signature }} Välj kurs

{{ article.chapterName }}

{{ article.displayTitle }}

Teori

En stor fördel med datorer är att de snabbt kan göra liknande beräkningar tusentals eller miljontals gånger. För att programmera sådana upprepningar använder man loopar med formuleringar som

"För alla dessa värden, gör så här: ..."
eller
"Fortsätt att göra ... tills ...".

Dessa två typer av loopar beskrivs med for- respektive while-satser, och på denna sida kommer du att lära dig hur man konstruerar sådana loopar.

varde = 0
maxvarde = 100
while varde < maxvarde:
	print(varde)
	varde = varde + 5
Vad tror du att koden gör? Vad kommer att skrivas ut? Vad händer om du byter plats på rad 4 och 5?

for-sats

Om man har instruktioner som ska upprepas ett känt antal gånger, t.ex. för varje element i en lista med given längd, kan man använda en for-sats. Dessa skrivs med kommandot for följt av ett variabelnamn, kommandot in och till sist en lista eller uppräkning, avslutat med ett kolon.

for element in ['hej', 'på', 'dig']:
	print(element)
Visa resultat
Första raden i det här programmet kan tolkas som "För varje element i listan ['hej', 'på', 'dig']". Det innebär att variabeln element sätts till det första värdet i listan och sedan ändras för varje ny upprepning i loopen. Dessa upprepningar kallas iterationer, och i den första kommer alltså element att vara lika med 'hej' för sedan bytas till 'på' i andra iterationen och 'dig' i tredje.

range()

range() är en funktion som skapar en uppräkning av heltal. Skriver man t.ex. range(5) får man en uppräkning från 00 till 4.4. Argumentet man anger ingår alltså inte i uppräkningen. Dessa uppräkningar är av datatypen iterator och används ofta tillsammans med loopar.

for x in range(8):
	print(x)
Visa resultat

Om man skriver två argument i funktionen kommer uppräkningen att ske från det första argumentet till, men inte med, det andra.

for x in range(3,8):
	print(x)
Visa resultat

Lägger man till ytterligare ett argument kommer det att användas som steglängden i uppräkningen.

for x in range(3,8,2):
	print(x)
Visa resultat

Exempel

Skriv en for-sats

while-sats

while-satser används för kodstycken som ska upprepas så länge ett visst villkor är uppfyllt. Det är användbart för loopar där man inte vet hur många upprepningar som krävs. För att skriva en sådan sats börjar man med ordet while, alltså "medan", följt av ett villkor och ett kolon. Den kod som ska upprepas skrivs med ett indrag.

tal = 1
while tal < 20:
	print('Talet är', tal)
	tal = tal*2 + 1
Visa resultat

I while-satser måste man akta sig för oändliga loopar. I programmet nedan ändras aldrig värdet på x,x, och då är villkoret alltid sant. Programmet kommer då aldrig ur loopen och måste avbrytas manuellt. De flesta programmeringsmiljöer har en stoppknapp för detta.

x = 1
while x < 5:
	print(x**2)

Exempel

Skriv en while-sats

break

break används i en for- eller while-sats för att avbryta den. Det är t.ex. användbart när man söker igenom en lista efter en viss sorts element. I exemplet nedan avbryts sökningen med break när ett tal mellan 6161 och 6767 har hittats.

lista = [44, 50, 55, 1, 62, 70, 94, 66, 56, 6]
for tal in lista:
	if 61 < tal < 67:
		print(tal)
		break
Visa resultat
Notera att det finns ytterligare ett tal i listan som ligger i intervallet, men programmet hittar inte detta just eftersom loopen avbryts efter att det första hittats.

Uppgifter