For lus
’A for loop is a repetition control structure that allows you to efficiently write a loop that needs to execute a specific number of times.’
Kijk nog eens naar de code van listing van
[whilelus01] op pagina . We kunnen deze
while
-lus ook herschrijven in een for
-lus.
De herschreven code ziet er alsvolgt uit:
<?php
$begin=1;
$maximum=10;
$tekst="Hello, World!\n";
for ($teller=$begin;$teller<=$maximum;$teller++) {
echo $tekst;
}
?>
Taak : Je eerste for lus
-
Plaats de code van listing [forlus01] in het bestand ;
-
voer uit;
-
verklaar samen de uitvoer van ;
-
pas de waarden in aan en kijk wat het effect is;
-
commit
in git;
Verschil tussen For en While
Het belangrijke verschil tussen een while
en for
lus is dat een
for
lus een zogenaamde tellende lus is. Je gebruikt een for
lus voor
code blokken die je een aantal keren wilt herhalen waarbij aantal een
getal is. Dit aantal is bekend of kan berekend worden aan het begin van
de for-lus.
Een while
lus is een lus die uitgevoerd wordt zolang een bepaalde
conditie waar is. Deze conditie kan een getal zijn maar dat hoeft niet.
Het is meestal van te voren niet bekend hoe vaak een while
-lus
uitgevoerd zal worden. While condities kunnen ook zijn:
- Bevat een variabele een bepaald woord.
- Bevat variabeleA een waarde groter dan variabeleB.
- Bevat variabeleC dezelfde waarde dan variabaleD.
- Voor elke regel in een bestand.
- Voor elke packet ontvangen van het netwerk.
- Zolang de ingelezen getallen opgeteld niet groter zijn dan 1024.
- enzovoort.
Door readline
te gebruiken kun je van een gebruiker invoer vragen en
daarmee rekenen.
In listint [tafel01] vragen we de gebruiker om een gewenste tafel. Daarna laten we de gewenste tafel zien.
<?php
$tafel=readline("Welke tafel wil je zien? ");
$begin=1;
$eind=10;
echo "\n\nTafel van $tafel:\n";
for ($teller=$begin;$teller<=$eind;$teller++) {
product=$teller*$tafel;
echo $teller." x ".$tafel." = ".$product."\n";
}
?>
Taak : Tafel
-
plaats de code van listing [tafel01] in het bestand ;
-
run enkele keren met verschillende invoer;
-
commit
in git;