Mint már mondtam, a ciklus arra való, hogy valamit addig csinál, amíg a feltétele teljesül.
A PHP-ban négy féle ciklusról beszélünk.
- while - elöltesztelő
- do-while - hátultesztelő
- for - elöltesztelő
- foreach - részletesen majd egy későbbi leckében
Mennyünk is végig sorjában.
WHILE
A while egy elöltesztelő ciklus. Nézzük meg a forgatókönyvét.
ELLENŐRZÖM, hogy a feltétel igaz-e
HA IGAZ LEFUTTATOM a kódot
ELLENŐRZÖM, hogy a feltétel igaz-e
HA IGAZ LEFUTTATOM a kódot
...
Tehát már azelőtt ellenőrzöm, hogy az ismétlendő kód egyszer lefutna. Ez azt jelenti, hogy nem biztos, hogy a kódunk egyáltalán lefut. Példa rá:
$x = 1;
while($x<5)
{
echo 'Kisebb, mint 5<br/>';
$x++;
}
Mit csinál a program?
Létrehoz egy x változót 1 értékkel.
A while feltételében ellenőrzi, hogy kisebb-e, mint az egy.
Mivel kisebb, kiírja, hogy "Kisebb, mint 5".
Majd az x++ segítségével növeli az x értékét eggyel.
Ismét visszatér a while feltételéhez, s ellenőrzi, hogy kisebb-e, mint 5.
Mivel kisebb, kiírja, hogy "Kisebb, mint 5".
... egészen addig, amíg az x értéke 5-nél kisebb (tehát 4)
DO-WHILE
A while egy elöltesztelő ciklus. Nézzük meg a forgatókönyvét:
LEFUTTATOM a kódot
ELLENŐRZÖM, hogy a feltétel igaz-e
HA IGAZ LEFUTTATOM a kódot
...
Tehát lefuttatom a kódot és csak utánna ellenőrzöm. A kód legalább egyszer biztosan lefut. Példa:
$x = 1;
do{
echo 'Kisebb, mint 5<br/>';
$ x++;
}while($x<5);
Mit csinál a program?
Létrehoz egy x változót, aminek az értéke 1.
Belép a ciklusba (a do-val jelzem a ciklus kezdetét)
Kiírja, hogy kisebb, mint 5. (hiszen az 1 kisebb, mint 5), az x-et pedig eggyel növeli.
A feltételben ellenőrzi, hogy x kisebb-e, mint 5.
Ha igen, akkor kiírja, hogy kisebb, mint 5...
Egészen addig, amíg az x értéke nem lesz 5.
FOR ciklus
A for cíklus valójában egy "átalakított" while ciklus. A while ciklus esetében nem mindig tudjuk, hogy pontosan hányszor fog lefutni a kód. Erre való a for ciklus. Nézzük meg, hogy néz ki a for ciklus "feltétele":
for($i = 0; $i< 5; $i++)
{
}
Először létrehozok egy i nevű változót 0 értékkel. (int i = 0). Utána pontosvesszővel jelzem, hogy ennyi volt ez a rész.
A következő lépésben megadom a feltételt. Olyan, mint amit a while és do-while ciklusoknál is használtunk. A ciklus addig fut, amíg az i értéke kisebb, mint 5. (i<5) Majd megint pontosvesszőt használok.
Legvégül pedig megmondom a ciklusnak, hogy mit csináljon az i-vel, amikor a fordító ideér. Ez esetben az i-t növeli eggyel. Nézzük meg kódban (figyeljük meg, mennyivel egyszerűbb a forral, mint a while-lal)
while:
$i = 0;
while($i<5)
{
echo 'Kisebb, mint 5 <br/>';
$i++;
}
for:
for($i = 0; $i<5;$i++)
{
echo 'Kisebb, mint 5<br/>';
}
Ha nem érthető, kérlek írj megjegyzést, vagy emailt.
A FOREACH ciklussal majd akkor foglalkozunk, amikor már ismerjük a tömböket.
bocs hogy beleszólok de a while-nél kihagytál a x++; előtt egy $ jelet.
VálaszTörlésköszönöm :D javítva
VálaszTörlésHeló Mátyás!
VálaszTörlésAzt nem tudod esetleg, hogy jeleníthetek meg képeket for ciklus segítségével ?