Algoritmy s PHP

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

 

Vetvenie programu, príkaz SWITCH

Niekedy potrebujeme program vetviť na niekoľko častí na základe hodnoty premennej alebo výrazu. Vtedy sa nám môže hodiť príkaz SWITCH. Príkaz má niekoľko tvarov s alternatívnou syntaxou. Pozrite si tabuľku.

    

Príklad príkazu SWITCH Vysvetlenie
switch (vyraz)
{
 case hodnota1:
      prikaz1-1
      prikaz1-2
      ...
      break;
 case hodnota2:
      prikaz2-1
      prikaz2-2
      ...
      break;
 ...
 default:
        prikazn-1
        prikazn-2
        ...
}
 
Takto vyzerá všeobecný tvar príkazu SWITCH. Najskôr sa vyhodnotí vyraz a potom sa postupne prechádzajú všetky časti CASE a hľadá sa hodnota zhodná s hodnotou výrazu. Ak sa nájde zhoda, vykonajú sa všetky príkazy až po najbližšie break Ak zabudneme break uviesť, vykonajú sa príkazy aj nasledujúcich case až po najbližšie break.

Ak nevyhovuje ani jedna hodnota, vykoná sa časť default. Táto časť nie je povinná.

switch ($cislo)
{
 case 0:
  echo "Testovane cislo je nula";
  break;
 case 1:
  echo "Testovane cislo je jeden";
  break;
 case 2:
 case 3:
 case 4:
  echo "Testovane cislo je z intervalu <2,3>";
  break;
 default:
  echo "Toto cislo nepoznam :-)";
}
                                               
Program testuje hodnotu premennej $cislo. Všimnite si, že pre hodnoty 2, 3 a 4 sa vykoná tá istá časť programu (vynechali sme break). Ak to nie je ani jedna z uvedených hodnôt (0, 1, 2, 3, 4) vykoná sa vetva default.
switch ($cislo):
 case 0.1:
  echo "Testovane cislo je nula";
  break;
 case "a":
  echo "Testovane cislo je jeden";
  break;
 case 2:
 case 3:
 case 4:
  echo "Testovane cislo je z intervalu <2,3>";
  break;
 default:
  echo "Toto cislo nepoznam :-)";
endswitch;
 
Druhá alternatíva príkazu switch. Zátvorky {} sme nahradili ":" a slovíčkom endswitch.