Sunteți pe pagina 1din 4

STRUCTURA ALTERNATIVA GENERALIZATA

In cazul

Structura în cazul este echivalenta lui switch în pseudocod. Este o structură alternativă multiplă
folosită pentru condiționarea executării unor instrucțiuni pe mai multe cazuri.

Sintaxă
┌─în cazul (<exp>)
│ caz <val_1>:<instr_1>
│ caz <val_2>:<instr_2>
│ ...
│ caz <val_n>:<instr_n>
│ [altfel <instr_altfel>]
└■
Unde:

 <exp> este expresia pe care o condiționăm;


 <val_k> este o valoare al unuia dintre cazuri;
 <instr_k> reprezintă instrucțiunile care se vor executa când cazul este favorabil;
 altfel este cazul care se va executa când niciun alt caz nu este favorabil (nu este obligatoriu
să existe, de aceea este pus între [ ]).

Efect

1. se evaluează expresia (<exp>);


2. se compară valoarea expresiei cu valorile cazurilor (<val_1>, <val_2>, <val_k> etc.);
3. dacă există o valoare (<val_k>) egală cu cea a expresiei se execută instrucțiunile
corespunzătoare (<instr_k>) și se iese din structură;
4. dacă expresia diferă de toate valorile cazurilor, se execută instrucțiunile de pe ramura
altfel (dacă există) și se trece mai departe în program.

EXEMPLU

Enunț: Se citesc două numere întregi și un caracter care va reprezenta o operație de executat (+,
-, *, /, sau %). Să se afișeze rezultatul operației corespunzătoare.

citește a,b,c
┌─în cazul (c)
│ cazul '+': scrie a+b
│ cazul '-': scrie a-b
│ cazul '*': scrie a*b
│ cazul '%': ┌─dacă b!=0
│ │ atunci scrie a%b
│ │ altfel scrie "eroare"
│ └■
│ cazul '/': ┌─dacă b!=0
│ │ atunci scrie a/b
│ │ altfel scrie "eroare"
│ └■
│ altfel scrie "operatie nedefinita"
└■
  Vom folosi o structură în cazul condiționată în funcție de caracterul c. Pentru fiecare din operații
vom afișa rezultatul corespunzător, iar la împărțire și mod vom trata cazurile particulare în care al
doilea număr introdus este 0 - vom afișa „eroare” în aceste cazuri.
  Dacă se introduce orice alt caracter în afară de cele definite, se va intra pe ramura altfel și se va
afișa mesajul „operatie nedefinita”.

IMPLEMENTARE C++

Instructiunea SWITCH

 Instrucțiunea switch este o structură alternativă multiplă. O vom folosi când vrem să
condiționăm valoarea unei expresii pe mai multe cazuri specifice.

Sintaxă
switch (<exp>) {
case <val_1>:<instr_1> break;
case <val_2>:<instr_2> break;
...
case <val_n>:<instr_n> break;
[default:<instr_default>]
}

Unde:

 <exp> este expresia pe care o condiționăm;


 <val_k> este o valoare al unuia dintre cazuri;
 <instr_k> reprezintă instrucțiuinile care se vor executa când cazul este favorabil;
 default este cazul care se va executa când niciun alt caz nu este favorabil (nu este
obligatoriu să existe, de aceea este pus între [ ]).

Instrucțiunea break; pusă la finalul fiecărui caz va face ca programul să iasă din structură după
executarea unui caz favorabil, fără a verifica și cazurile următoare.

Efect

1. se evaluează expresia (<exp>);


2. se compară valoarea expresiei cu valorile cazurilor (<val_1>, <val_2>, <val_k> etc.);
3. dacă există o valoare (<val_k>) egală cu cea a expresiei se execută instrucțiunile
corespunzătoare (<instr_k>) și se iese din structură;
4. dacă expresia diferă de toate valorile cazurilor, se execută instrucțiunile de pe ramura
default (dacă există) și se trece mai departe în program.

S-ar putea să vă placă și