Kapitel 9. Iterationer (Upprepningar, loopar)

Innehållsförteckning
While-satsen
do-while-satsen
for-loopen
Mer läsning

Datorprogram är extremt bra på att göra saker om och om igen, utan att ledsna eller göra fel. Till detta använder man någon typ av iterationssats (iteration = upprepning).

While-satsen

While-satsen är en vanlig iterationssats. Den fungerar så att en sats (som kan vara ett block) körs om och om igen så länge som ett test är sant. Studera följande exempel som skriver ut tiotusen ettor.

Exempel 9-1. Exempel med while


<?php
// Exempel på while-loop

echo "<h1>Tiotusen ettor</h1>";

$a = 0;
while ($a < 10000) {
   echo "1 ";
   $a = $a + 1;
}
?>


				
Vi tittar på exemplet rad för rad. Raden som börjar med "//" är en kommentar, den kan ni ignorera, kommentarer är viktiga men vi kommer att gå igenom dem lite senare.

Den andra raden är starten på while-loopen (kallas även loop eftersom den loopar om och om igen). Så länge som testet ($a < 10000) är sant so kommer satsen efter att repeteras. När $a är större än eller lika med 10000 kommer loopen att avbryts. Om man i loopen glömmer att öka $a kommer testet alltid att vara sant och man kommer aldrig ur loopen. Detta kallas för en oändlig loop och är ett vanligt programmeringsfel som gör att programmet hänger sig eller kraschar.

Om testet inte är sant från början så kommer aldrig det står i satsen att köras. Se därför till att testet är sant från början.

do-while-satsen

Do-while liknar på många sätt den vanliga while-satsen. Den enda skillnaden är att det som står i satsen alltid kommer att utföras åtminstone en gång. Se följande exempel:

Exempel 9-2. Exempel med do-while


<?php
// Ett exempel på hur man använder do-while

$i = 0;

do {
   echo "$i ";
   $i = $i + 1;
} while ($i < 100);

?>


				
Tilldelningen till $i är viktig eftersom den sätter värdet där loopen skall börja. I loopen skrivs först $i ut och sedan ökas variabeln $i med ett. Detta sker så länge som $i är mindre än 100. Alltså från 0 till 99.

for-loopen

For är den vanligaste iterationen. Den är dock vid en första anblick lite krångligare än de andra. Man kan om man vill använda while istället för for om man vill, men när man kan for är den mycket smidigare.

for-loopen skriver man med det reserverade ordet for följt av en parentes. Inom parentesen skall det stå tre stycken uttryck. Dessa tre skall se ut enligt följande.

Nu känner jag att exempel är på sin plats igen:

Exempel 9-3. Exempel med for-loop


<?php
//Exempel på for-loop

for ($i = 0; $i <= 10; $i++) {
   echo "$i<br>\n";
}
?>


				
Oftast används de tre olika satserna på precis det sätt som visas ovan. Nämligen att initiera en räknare, kolla ett gränsvärde och räkna upp räknaren, men inget hindrar att man använder dem på andra sätt.

Mer läsning

Aktuellt avsnitt i PHP-manualen: http://www.php.net/manual/en/control-structures.php