Descrie forma și modul de funcționare al structurii alternative
Răspunsuri la întrebare
Structurile alternative/de decizie permit rezolvarea unor situații, unde este necesară executarea unor instrucțiuni în cadrul unui program numai în anumite condiții.
Instrucțiunea if
Instrucțiunea if este cea mai utilizată structură alternativă.
Sintaxa
Instrucțiunea if are două forme:
- Varianta 1
C++
if (expresie){
bloc de instrucțiuni 1
}
else{
bloc de instrucțiuni 2
}
Pseudocod
|-dacă expresie atunci
| bloc de instrucțiuni 1
| altfel
| bloc de instrucțuni 2
|_
- Varianta 2
C++
if (expresie){
bloc de instrucțiuni 1
}
Pseudocod
|-dacă expresie atunci
| bloc de instrucțiuni 1
|_
CÂND EXISTĂ O SINGURĂ INSTRUCȚIUNE, ACOLADELE NU MAI SUNT OBLIGATORII!
Mod de execuție
Expresia trebuie să fie de tip bool sau să poată fi convertită la bool. (adică să poată fi evaluată cu 0 - fals sau 1 - adevărat)
Conversia se face astfel:
- dacă expresia este nenulă se va obține valoarea true;
- dacă expresia este nulă se va obține valoarea false.
Instrucțiunea if se execută în felul următor:
- Varianta 1
- se evaluează expresie, care este de tip bool sau poate fi convertită la bool
- dacă valoarea ei este true
- - se execută bloc de instrucțiuni 1
- - se continuă cu instrucțiunea care urmează după if
- dacă valoare expresiei este false
- - se execută bloc de instrucțiuni 2
expresie
|---------------------------------------------------------|
true false
| |
\/ \/
bloc de instrucțiuni 1 bloc de instrucțiuni 2
- Varianta 2
- se evaluează expresie, care este de tip bool sau poate fi convertită la bool
- dacă valoarea ei este true
- - se execută bloc de instrucțiuni 1
- - se continuă cu instrucțiunea care urmează după if
- dacă valoare expresiei este false
- - se execută bloc de instrucțiune 2
expresie
|---------------------------------------------------------|
true false
| |
\/ |
bloc de instrucțiuni 1 |
Instrucțiunea switch
Instrucțiunea switch permite executarea unor instrucțiuni, în funcție de egalitatea unei expresii cu anumite valori numerice constante:
Sintaxa
C++
switch (expresie) {
case număr 1:
bloc de instrucțiuni 1
break;
E T C...
case număr x:
bloc de instrucțiuni x
break;
default:
bloc de instrucțiuni default
break;
}
Pseudocod
optiune (expresie)
caz număr 1:
bloc de instrucțiuni 1
salt;
E T C...
caz număr x:
bloc de instrucțiuni x
salt
implicit:
bloc de instrucțiuni implicit
salt
IN FIECARE CASE/CAZ număr x TREBUIE SĂ FIE NUMĂR ÎNTREG!!!
Mod de execuție
- se evaluează expresie
- dacă valoarea expresiei este egală cu una dintre valorile dintr-un caz, se execută instrucțiunile din grupul de instrucțiuni corespunzător, apoi se trece la instrucțiunea de după switch
- dacă valoarea expresiei nu este egală cu niciuna dintre valorile vreunui caz, se verifică existența cazului default;
- - dacă există cazul default, se execută instrucțiunile din grupul de instrucțiuni corespunzător cazului default, apoi se trece la instrucțiunea de după switch
- - dacă nu există cazul default, se trece la instrucțiunea de după switch