Programmeringskurs: 3.2 for-løkker
For hver verdi i et område
Så langt har vi brukt for-løkker til å traversere (eller gå gjennom) lister. Og den første koden med for-løkke vi så på var en kode som telte opp til 5. Den var slik
Dette kunne vi også gjort slik:
Her har vi byttet ut listen #\texttt{[1, 2, 3, 4, 5]}# med #\texttt{range(1, 6)}#. Det gir oss tallene fra og med 1, til 6. Det første tallet, 1, er med, men ikke det siste, tallet 6. Med andre ord gir det oss tallene 1, 2, 3, 4 og 5.
Med koden
#\texttt{for verdi in range(}\color{darkorange}{\texttt{startverdi}}\texttt{, }\color{blue}{\texttt{sluttverdi}}\texttt{, }\color{green}{\texttt{steg}}\texttt{)}#
#\quad \color{red}{\texttt{handling}}#
får vi en #\texttt{for}#-løkke som går gjennom verdien fra og med heltallet #\color{darkorange}{\texttt{startverdi}}# til (og ikke med) heltallet #\color{blue}{\texttt{sluttverdi}}#. Med heltallet #\color{green}{\texttt{steg}}# bestemmer vi hvor store steg vi skal gjøre når vi lister opp tallene. Hvis vi ikke tar med #\color{darkorange}{\texttt{startverdi}}# er den 0, #\color{green}{\texttt{steg}}# er lik 1 hvis vi utelater den.
ØVELSE
1) Endre i koden ovenfor, slik at den i stedet skriver ut tallene opp til og med 10.
2) Endre i koden ovenfor slik at den i stedet teller fra 10 og ned til 1.
Bruk en #\texttt{for}#-løkke til å skrive ut de 10 første partallene.
LØSNING:
Vi kan gjøre dette på flere måter. Vi kan for eksempel gjøre det slik:
<> | Kodeeditor | |
for n in range(1, 11) #\quad\text{#}#for-løkke fra og med 1 til (og ikke med) 11. #\quad#partall = 2*n #\quad\text{#}#Formel for partallene #\quad#print(partall) #\quad\text{#}#Skriver ut tallet |
Eller vi kan gjøre det slik:
<> | Kodeeditor | |
for n in range(10) #\quad\text{#}#for-løkke fra og med 0 til og med 9 #\quad#partall = 2*n + 2#\quad\text{#}#Formel for partallene (+2, for å starte på 2) #\quad#print(partall) #\quad\text{#}# Skriver ut tallet |
Eller vi kan gjøre det slik:
<> | Kodeeditor | |
#\text{#}#Løkke fra og med 2 til (og ikke med) 22. Vi hopper over annen hvert tall. for tall in range(2, 22, 2) #\quad#print(tall) #\quad\text{#}#skriver tallet |
I alle tilfeller blir resultatet slik:
2
4
6
8
10
12
14
16
18
20