A PHP do...while loop

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

A do...while ciklus szintaxisa némileg eltér a while ciklus szintaxisától, és a következő módon írható fel:
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:

PHP-kód:
$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 szám: 1
A szám: 2
A szám: 3
A szám: 4
A szám: 5

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á!

Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Részletek mutatása" gombra olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat.