[ 07. August 2000]
- Andrej_Chu
Cykly v PHP (PHP - časť 5)
Vetvenie programu pomocou cyklov si ukážeme v dnešnej piatej časti nášho seriálu o scriptovacom jazyku PHP. Ukážeme si ako fungujú príkazy ako WHILE, DO...WHILE, FOR, SWITCH a CONTINUE.
Cykly a ako na ne.
WHILE
Ide o najjednoduchší typ cyklu. Má podobnú syntax ako v C:
while (výraz) príkaz;
Príkaz je vykonávaný dovtedy, kým je hodnota výrazu TRUE. Nazýva sa aj cyklus s podmienkou na začiatku. Vždy na začiatku cyklu sa otestuje výraz a v prípade, že hodnota je TRUE, vykoná sa príkaz a opäť od začiatku. V prípade, že potrebujeme vykonať viacero príkazov (takmer vždy), musíme použiť blok, teda príkazy uzavrieť do zložených zátvoriek:
while (výraz) {
príkaz1;
príkaz2;
atd...
}
Cyklus while samozrejme tiež umožňuje alternatívnu syntax. Tá je podobná, ako bola pre IF, tu nám poslúži konštrukcia while(výraz): a endwhile, pričom syntax je nasledovná:
while (výraz):
príkaz1;
príkaz2;
atd...
endwhile;
DO..WHILE
Cyklus do..while je veľmi podobný cyklu while. Rozdiel tkvie v tom, že zatiaľ čo v predchádzajúcom prípade bola podmienka testovaná na začiatku, tu je to zase na konci. Z toho vyplýva, že cyklus do..while musí prebehnúť minimálne raz, zatiaľ čo pre cyklus while toto neplatí. Syntax cyklu do..while je nasledovná:
do {
príkaz1;
príkaz2;
atd...
} while (podmienka);
Môže sa stať, že budete potrebovať cyklus, ktorý bude nekonečný a bude sa dať ukončiť iba zvnútra cyklu. Na to nám poslúži príkaz break:
do {
if (podmienka) break;
} while (0);
Posledný riadok nám zabezpečí, že cyklus sa nikdy neukončí (0 je vždy vyhodnocovaná ako FALSE) a dá sa ukončiť iba v prípade, že je splnená podmienka príkazom break.
FOR
Cyklus for je jedným za najkomplexnejších v PHP. Jeho syntax je opäť podobná Céčku:
for (výraz1; výraz2; výraz3) príkaz1;
výraz1 je vyhodnotený (vykonaný) iba raz, na začiatku cyklu. výraz2 slúži ako kontrolná podmienka pre cyklus, pretoŽe je vyhodnocovaná na začiatku každej iterácie. V prípade, že je vyhodnotená ako TRUE, je iterácie vykonaná, ak FALSE, celý cyklus končí. výraz3 slúži hlavne na modifikáciu riadiacej premennej a je vykonaný po skončení každej iterácie. Každý z týchto výrazov je nepovinný, takže konštrukcia cyklu for môže vyzerať aj takto:
for (;;)
{
príkaz1;
príkaz2;
atd...
}
Samozrejme tu nesmiete zabudnúť na modifikáciu a kontrolu riadiacej premennej vo vnútri a pred začiatkom cyklu, inak sa ľahko môže stať, že sa zacyklí.
Aj cyklus for má svoju alternatívnu syntax:
for (výraz1; výraz2; výraz3):
príkaz1;
príkaz2;
atd...
endfor;
CONTINUE
Ide o špeciálny príkaz, ktorý slúži na skok na ďalšiu iteráciu. Jednoducho povedané, ukončí momentálnu iteráciu skokom na koniec bloku cyklu a tým sa zabezpečí prechod na ďalšiu iteráciu. Tento príkaz môžete použiť na všetky typy cyklov, teda
while, do..while aj for.
for (výraz1; výraz2; výraz3) {
if (podmienka) continue;
príkaz1; // tu sa pokračuje iba vtedy, ak podmienka nebola splnená
príkaz2;
atd...
}
SWITCH
Poslednou kontrolnou štruktúrou, o ktorej si povieme, je switch. Céčkari si opäť prídu na svoje, pretože syntax je zasa podobná C. Switch slúži na nahradenie po sebe idúcich podienok IF s rovnakou premennou v podmienke:
switch ($premenna) {
case 0:
print "premenna sa rovna 0";
break;
case 1:
print "premenna sa rovna 1";
break;
case 2:
print "premenna sa rovna 2";
break;
}
Ako vidíte, program skočí vždy na tú vetvu, ktorá vyhovuje premennej uvedenej v zátvorke a hodnote uvedenej pri case. Musíte si dávať pozor a používať príkaz break, pretože kód je vykonávaný vždy od nájdenej vetvy až po koniec bloku switch alebo kým nenarazí na príkaz break. Preto sa tento príkaz používa v každej vetve. Ak by tak nebolo a $premenna sa rovnala 0, boli by vykonané všetky príkazy v bloku switch.
Tak potrebnú (aj keď zďaleka nie všetku) časť teórie máme za sebou a nabudúce sa budeme venovať už nejakým praktickým záležitostiam.
|
|
|