Pozor na nekonečný cyklus, je docela dlouhý :-)
Určitě již nastal případ, kdy chcete provádět část kódu dokud bude platit určitá podmínka. Potom cykly jsou řešením. Cyklů máme několik typů. Ukážeme si ty nejdůležitější.
While
Cykly while jsou nejjednodušším typem cyklů v PHP a zároveň i nejpoužívanějším.
Cyklus je prováděn tak dlouho, dokud podmínka je splněna (TRUE), cyklus nemusí být proveden ani jednou. To vyplývá z předpokladu, že podmínka je testována ihned na začátku.
while (podminka) { prováděný_kód }
Příklad na výpočet faktoriálu.
<?
$i=5;
$f=$i;
while ($i>1)
{
$f=$f*($i-1); // faktoriál čísla 5 = 5*4*3*2
$i=$i-1; // zmenší číslo i o jedničku
}
print $i."! = ".$f."<br>";
?>
Je důležité ověřit si, zda podmínka někdy nebude splněna a cyklus skončí, protože nekonečný cyklus by mohl trvat nekonečně (dokud Apache nebo OS neřekne stop :-)).
do-while
Cyklus do-while je velice podobný, jediný rozdíl je v tom, že cyklus musí být proveden aspoň jednou. Je to zapříčiněno tím, že podmínka se testuje až na konci skriptu.
do {prováděný_kód } while (podminka)
Níže uvedený kód napíše, slovo "ahoj" dvakrát.
<?
$slovo="Ahoj";
$kolikrat=2;
do
{
print $slovo."<br>";
$kolikrat=$kolikrat-1;
}
while ($kolikrat>0);
?>
A i v případě, že by proměnná kolikrat byla menší než jedna, tak minimálně jednou to vypíše slovo ahoj (zdravit se musí).
<?
$slovo="Ahoj";
$kolikrat=0;
do
{
print $slovo."<br>";
$kolikrat=$kolikrat-1;
}
while ($kolikrat>0);
?>
nekonečný cyklus
Pro odvážlivce uvádím nekonečný cyklus, na vlastní nebezpečí si jej spusťte, a budu rád, pokud někdo z vás přijde na chybu.
<?
$i=5;
$j=5;
while ($j>1)
{
print $i;
$i=$i-1;
}
?>