Algoritmy s PHP

Ján Guniš, PF UPJŠ, Košice

 

Príkazy pre ovládanie cyklov BREAK, CONTINUE

Príkaz break umožňuje okamžité ukončenie vykonávania tela cyklu.

    

Príklad príkazu BREAK Vysvetlenie
$a = 17;
$b = 187;
$c = -4692;
for ($i=1;$i<=100;++$i):
 if ($a*$i*$i+187*$i-4692 == 0) break;
endfor;
echo $i;
                                       
Program hľadá celočíselné riešenie rovnice 17x2+187x-4692=0 v intervale <1,100>. Ak sa nájde vyhovujúca hodnota premennej $i, cyklus sa násilne ukončí.
Poznámka: posledný príkaz "echo $i" nemusí vypísať vždy správne riešenie (najmä ak riešime inú rovnicu)
for ($a=1;$a<=100;++$a):
 for ($b=1;$b<=100;++$b):
  if ($a*$b == 2451) break 2;
 endfor;
endfor;
echo $a."*".$b."=".$a*$b;
 
Tento program hľadá dve čísla z intervalu <1,100>, ktorých súčin je 2451. Príkaz break má parameter 2. To znamená, že má ukončiť 2 cykly. Keby sme tento parameter neuviedli, ukončil by sa len vnútorný cyklus. Tento parameter má zmysel len vtedy, keď sú cykly vnorené do seba.

 

Príkaz continue preskočí všetky zostávajúce príkazy v tele cyklu a začne vykonávať ďalšie opakovanie. Ak by neboli splnené podmienky pre opakovanie cyklu, ďalšie opakovanie sa nevykoná.

Príklad príkazu CONTINUE Vysvetlenie
for ($a=1;$a<=1000;++$a):
 if ($a%7 != 0) continue;
 if ($a%11 != 0) continue;
echo $a;
endfor;;
                                      
Program hľadá celé čísla z intervalu <1,1000>, ktoré sú deliteľne číslami 7 a 11. Aj príkaz break môže mať parameter, ktorý udáva počet cyklov, ktorých telá sa majú preskočiť.