Jump to content

[PHP] Structura alternativa


Vennom
 Share

Recommended Posts

Structura alternativa are mai multe ramuri:

  1. Constructia if...else
  2. Constructia elseif
  3. Instructiunea switch
  4. Instructiunea break;

Si multe altele PHP-ul fiind o combinatie intre C++, Perl si Java este un limbaj destul de complex.

 

1. Constructia if...else:

Structurile alternative dirijează execuţia unei secvenţe de instrucţiuni (s1 sau s2) in funcţie de valoarea de adevar a unei condiţii plasate in blocul de decizie. Dacă secvenţa s1 sau s2 conţine mai multe instrucţiuni, acestea sunt introduse intr-un bloc de instrucţiuni. Dacă secvenţa s2 este vida (structura pseudoalternativă), instrucţiunea if nu are ramura else.

* Instructiunea else poate sa lipseasca din aceasta constructie in cazul in care nu dorim sa executam nici o secventa de instruciuni daca conditia din if nu este adevarata.

 

2. Constructia elseif:

Folosind constructii de tipul if - else vom obtine o secventa de tipul:

if (conditie #1) 
instructiune #1
else
if (conditie #2)
instructiune #2
else
...
else
if (conditie #n)
instructiune #n
else
instructiune #n+1

Limbajul PHP permite folosirea unei prescurtari si anume constructia elseif. Practic, aceasta inlocuieste un else urmat de un if. Folosind aceasta structura, codul anterior poate fi scris astfel:

if (conditie #1)
instructiune #1
elseif (conditie #2)
instructiune #2
elseif
...
elseif (conditie #n)
instruciune #n
else
instructiune #n+1

3. Instructiunea switch:

In anumite cazuri trebuie sa efectuam anumite operatii in functie de anumite valori ale unei expresii. O solutie ar fi folosirea unor structuri if imbricate sau a uneia singure in care apar mai multe constructii eseif.
Sa presupunem ca o anumita variabila poate avea cinci valori distincte si pentru fiecare valoare trebuie executata o anumita instructiune. Daca folosim structura if, secventa de cod va fi urmatoarea:

if ($variabila == valoare #1) 
instructiune #1 
elseif ($variabila == valoare #2) 
instructiune #2
elseif ($variabila == valoare #3) 
instructiune #3 
elseif ($variabila == valoare #4) 
instructiune #4 
else 
instructiune #5

Folosind structura switch, secventa echivalenta este:

swich ($variabila) { 
case valoare #1: instructiune #1 
break;
case valoare #2: instructiune #2
break;
case valoare #3: instructiune #3
break;
case valoare #4: instructiune #4
break;
case valoare #5: instructiune #5
break;
}

Sintaxa generala a instructiunii switch:

switch (expresie) { 
case valoare #1: grup instructiuni #1 
case valoare #2: grup instructiuni #2
...
case valoare #n: grup instructiuni #n
[default: grup instructiuni #n + 1] 
} 

Pentru inceput se determina valoarea expresiei si apoi se verifica daca aceasta apare ca valoare pentru una dintre constructiile case. In caz afirmativ, toate instructiunile incepand cu cea corespunzatoare valorii respective (pana la sfarsitul blocului swich) vor fi executate. Executia acestor instructiuni poate fi intrerupta daca este folosita instructiunea break, care va fi prezentata mai jos. Daca valoarea expresiei nu corespunde nici uneia dintre valorile corespunzatoare constructiilor case, se executa instructiunile corespunzatoare constructiei default. Daca aceasta lipseste, atunci nu se executa nici o instructiune. Trebuie precizat faptul ca valorile corespunzatoare constructiilor case pot fi numere intregi, numere reale sau siruri de caractere; nu pot fi utilizate obiecte sau vectori.

 

4. Instructiunea break:

Aceasta instructiune poate fi folosita pentru a intrerupe fortat executia unui ciclu sau a secventei de instructiuni. Instructiunea poate fi urmata de un argument care indica numarul de structuri imbricate a caror executie se incheie. Valoarea implicita este 1, deci se intrerupe executia unei singure structuri. Mai departe aveti cazul in care este intrerupta executia mai multor cicluri; vom considera ca parcurgem elementele unei matrice patratice cu n elemente si n coloane pana in momentul in care intalnim o valoare nula.

for ($i = 0; $i < $n; $i++) 
for ($j = 0; $j < $n; $j++) 
if ( ! $a [$i] [$j] ) 
break 2; 

Instructiunea break poate fi utilizata pentru intreruperea executiei secventelor de instructiuni corespunzatoare structurilor for, foreach, while, do - while si switch.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.