Løkker

Løkker - et overblik

Ofte har man brug for at et program skal gøre det samme igen og igen. Det kan f.eks. være at skulle udføre den samme beregning, på et stigende tal. Det kan f.eks. være at udskrive kvadrattallene (1,4,9,16,25 ...). På engelsk kaldes dette et loop.

Python arbejder med 4 forskellige løkker. Ud af disse bliver en af dem kun anvendt i arrays, så den vil ført blive gennemgået der.

  • for
  • Anvendes når man kender det nøjagtige antal gennemløb. Hvis man f.eks. ved at en funktion skal gennemløbes 10 gange vil man anvende for-løkken.

    Anvendelsefor ( startværdi ; slutværdi ; spring ) { kode };

  • while
  • Anvendes når en kode skal køres når en betingelse er opfyldt

    Anvendelse: while( betingelse ) { kode };

  • do ... while
  • Anvendes når en kode skal køres indtil en betingelse er opfyldt

    Anvendelse: do { kode } while ( betingelse )

Increments

Nar man arbejder med løkker skal man have en tæller, som sørger for løkken kører et vist antal gange. Dette kalder man increment (vækst) på engelsk, og derfor giver man som standard denne vækstfaktor betegnelsen i.

Ved at overholde denne standard er det også lettere at læse kode, fordi man ved at $i er den variabel der holder styr på antallet.

for

Anvendes når man kender det nøjagtige antal gennemløb. Hvis man f.eks. ved at en funktion skal gennemløbes 10 gange vil man anvende for-løkken.

Anvendelsefor ( startværdi ; slutværdi ; spring ) { kode };

Herunder er nogle eksempler på løkker:

Udskriv tabel

Herunder udskriver vi 7-tabellen


<?php
for($i=1;$i<=10;$i++) {
	echo 7*$i." ";
	}
?>

7 14 21 28 35 42 49 56 63 70

for-løkken starter ved:

  1. 1 - ($i=1),
  2. fortsætter til 10 - ($i<=10),
  3. i trin af 1 - ($i++).

Udskriv lige tal

Her udskriver vi de lige tal op til 20


<?php
for($i=2;$i<=20;$i+=2) {
	echo $i." ";
	}
?>

2 4 6 8 10 12 14 16 18 20

Trekanttal

Herunder udskriver vi de første 12 trekanttal ud fra formlen:

$$ T_n = 1+2+3 ... +n= \frac {n \cdot (n+1)}{2} $$

<?php
for($i=1;$i<=12;$i++) {
	$t = ($i*($i+1))/2;
	echo $t." ";
	}
?>

1 3 6 10 15 21 28 36 45 55 66 78

while

Anvendes når en kode skal køres når en betingelse er opfyldt

Anvendelse: while( betingelse ) { kode };

Udskriv 7 tabel op til 70

Herunder er den samme kode som ovenfor, blot skrevet med while. Læg mærke til at vi her skal definere variablen ($tal) før før vi kan sætte gang i løkken, og at vi skal sætte variablen til at vokse med en hver gang ($tal++).


<?php
$i = 1;

while ($i <= 10) {
	echo 7*$i." ";
	$i++;
	}
?>

7 14 21 28 35 42 49 56 63 70

Læg mærke til at while-løkken gør det samme som for-løkken. Den store forskel er, at man skal angive tælleren FØR funktionen. Funktionen ser lidt simplere ud, men kræver altså noget forarbejde.

do ... while

Anvendes når en kode skal køres mindst en gang eller indtil en betingelse er opfyldt

Anvendelse: do { kode } while ( betingelse )

Se følgende eksempel, hvor vi laver en do ... while-løkke, hvor vi sætter antallet til 8, men at den kun skal køres til og med 5


<?php 
$i = 1; 

do {
	echo 7*$i." ";
	$i++;
} while ($i <= 10);
?>

7 14 21 28 35 42 49 56 63 70

I dette tilfælde virker det underligt, fordi det ikke giver nogen mening at vi får at vide at variablen er 8 - når den kun må være 5 og derunder. Men det kan være at der er en anden kode vi vil sikre os kører mindst en gang - uanset betingelsen.