Sähköisten asiointipalveluiden toteuttaminen

Sorakuilu

Toistorakenteet

while

while (ehtolauseke) lause;

while (ehtolauseke) { lause 1; lause 2; }

Lause toimii seuraavasti: "Niin kauan kuin ehtolauseke on tosi, suorita lause tai lauseet uudelleen".

Esimerkki

<?php $i = 1; while ($i <= 5) { echo "Rivi".$i."<br>"; $i++; } ?>

tuottaa seuraavat rivit:

Rivi 1 Rivi 2 Rivi 3 Rivi 4 Rivi 5

Esimerkki

Ohjelma tulostaa eri kokoisia (html) otsikoita allekkain

<?php $i = 1; while ($i < 5) { echo "<h".$i."> Otsikko$i </h".$i.">"; $i++; } ?>

Variaatio while-lauseesta on do-while, joka antaa mahdollisuuden määritellä ehtolauseke rakenteen lopussa:

do - while

do lause; while (ehtolauseke);

lause suoritetaan ainakin kerran. Edellinen while-lauseella tehty esim voidaan tehdä do...while-lauseella seuraavasti:

$i = 0; do { $i++; echo "Rivi $i<br>"; } while ($i <= 5);

for

for (alkulause; ehtolauseke; loppulause)
lause;

Tässä toistolause on erityisen kätevä silloin, kun toisto perustuu laskurimuuttujaan.

Edellinen esim for-lauseella tehtynä on yksinkertaisesti:

for ($i = 1; $i <= 5; $i++) echo "Rivi $i<br>";

Demonstraatio, koodiesimerkki

Tehtävä on tulostaa näytölle parittomat luvut väliltä 1-49 käyttäen

  1. while-,
  2. do…while- ja
  3. for-rakenteita

Muotoile tehtävän tulostus html-taulukkoon

<?php include "alku.html"; echo "<table>"; //taulukko alkaa echo "<caption>Kohta 1 - while-lauseella </caption>";//taulukon otsikko $i=1; echo "<tr>"; //taulukon rivi alkaa while($i < 50) { echo "<td>".$i."</td>"; $i=$i+2; } echo "</tr>";//taulukon rivi loppuu echo "</table>"; //taulukko loppuu //*********************************** echo "<table>"; //taulukko alkaa echo "<caption>Kohta 2 - do while-lauseella </caption>"; $i=1; echo "<tr>"; //taulukon rivi alkaa do { echo "<td>".$i."</td>"; $i=$i+2; } while($i < 50); echo "</tr>";//taulukon rivi loppuu echo "</table>"; //taulukko loppuu //********************************* echo "<table>"; //taulukko alkaa echo "<caption>Kohta 3 - for-lauseella </caption>"; echo "<tr>"; //taulukon rivi alkaa for($i=1;$i<50;$i=$i+2) echo "<td>".$i."</td>"; echo "</tr>";//taulukon rivi loppuu echo "</table>"; //taulukko loppuu include "loppu.html"; ?>