Arra is kitértünk, melyik típust milyen esetben tudjuk a leghatékonyabban alkalmazni. Ma a ciklus témakör végéhez érkeztünk. Már csak annyi maradt hátra, hogy megismerkedjünk a while ciklus egyik módosított változatával: a do...while ciklussal. Vágjunk bele!
A do...while ciklus a while ciklus enyhén módosított változata, így a megértése nem lesz túl bonyolult feladat, ha gyakoroltad a while ciklust. Ismételjük át: a while ciklus esetében a feltételes állítás van ellenőrizve. Ha a feltételezés igaznak bizonyul, a while ciklusban található kód lefut. Ha a feltételezés hamis, a kód nem fut le. Ilyen egyszerű! A do...while ciklus esetében egy kicsit más a helyzet. Ez a ciklus mindig lefuttatja a kódot legalább egyszer. Ez azért van így, mert a feltételes állítás mindaddig nem lesz ellenőrizve, amíg a ciklus belsejében található kód nem fut le.
A do...while ciklus folyamata tehát a következő: a kódblokk egyszer lefut, majd a feltétel ellenőrzésen esik át, és ha a feltétel igaz, a ciklus megismétlődik. A ciklus addig ismétlődik, amíg a feltétel igaz.
A do...while ciklus szintaxisa
do {
kivitelezendő kód;
} while (a feltétel igaz);
A while és a do...while ciklus közötti különbség
A két típus közötti különbséget a legkönnyebben egy olyan egyszerű példán tudjuk illusztrálni, amelynek esetében a feltételes állítás mindig hamis. Nézzük a példánkat, előbb a while ciklus esetében:
$cookies = 0;
while ($cookies > 1) {
echo 'Mmmmm... Imádom a sütiket! *nyamm, nyamm, nyamm*';
}
Megjelenítés a böngészőben:
Nem, nem nyomdahibáról van szó — a böngészőben valóban nem fog megjelenni semmi, hiszen a feltételezés hamis (0 nem nagyobb, mint 1), ezért a ciklus belsejében található kód nem futott le. Nos, kitalálod, mi fog történni a do...while ciklus esetében?
PHP-kód:
$cookies = 0;
do {
echo 'Mmmmm... Imádom a sütiket! *nyamm, nyamm, nyamm*';
} while ($cookies > 1);
Megjelenítés a böngészőben:
Mmmmm... Imádom a sütiket! *nyamm, nyamm, nyamm*
A „Mmmmm... Imádom a sütiket! *nyamm, nyamm, nyamm*” kódrészlet le lett futtatva, annak ellenére, hogy a feltételes állítás hamis volt (0 továbbra sem nagyobb, mint 1). Ez azért van, mert a do...while előbb cselekszik, és csak azután ellenőriz, azaz előbb lefuttatja a kódrészletet, és csak utána ellenőrizi a feltételes állítás helyességét.
Nézzünk még néhány példát a do...while ciklus alkalmazására, hiszen így a legkönnyebb tanulni!
PHP-kód:
$x = 1;
do {
echo 'A szám: ' . $x . '<br />;
$x++;
} while ($x <= 5);
?>
Megjelenítés a böngészőben:
A példában egy olyan ciklust határoztunk meg, amely $x = 1-gyel kezdődik. Ezután az $x változót mindig eggyel növeljük, és kiírjuk az eredményt. Ezután a feltételezés helyességét teszteljük — a ciklus addig fog futni, amíg az $x kisebb, mint 5, vagy egyenlő vele.
Ne feledjük, hogy a do...while ciklus esetében a feltételezést csak a kód lefuttatása UTÁN teszteljük. Vagyis a do...while ciklus legalább egyszer lefuttatja a kódot, akkor is, ha az állítás már az első alkalommal is hamis. Igen, ezt már sokszor mondtuk — de hogyan fest mindez a gyakorlatban? Lássuk!
PHP-kód:
<?php
$x = 6;
do {
echo 'A szám: ' . $x . '<br />;
$x++;
} while ($x <= 5);
?>
Megjelenítés a böngészőben:
A szám: 6
Amint a példa is illusztrálja, a ciklus belsejében található kód lefutott, annak ellenére, hogy az állítás hamis (6 nem kisebb, mint 5, és nem is egyenlő vele).
Összegzés:
Elég nagy az esély arra, hogy a do...while kódot nem fogod gyakran alkalmazni a PHP-programozói karriered során. Nem árt azonban ismerni a működését, hiszen sosem tudni, mikor jön majd jól! Ezzel mai leckénk, illetve a ciklusokról szóló sorozatunk végére érkeztünk. Már csak egy kis gyakorlásra van szükség, és magabiztosan tudod majd használni a ciklusokat a különféle helyzetekben. Ha esetleg megakadnál valahol, bármikor visszaolvashatod korábbi cikkeinket is. Következő leckénkben elkalandozunk a PHP egy új területére — a post és a get módszerrel fogunk foglalkozni. Addig is javasoljuk, hogy elevenítsd fel a PHP-formokról szóló leckét — szükséged lesz rá!