Răspuns :

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

  1. - se execută bloc de instrucțiuni 1
  2. - se continuă cu instrucțiunea care urmează după if

- dacă valoare expresiei este false

  1. - 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

  1. - se execută bloc de instrucțiuni 1
  2. - se continuă cu instrucțiunea care urmează după if

- dacă valoare expresiei este false

  1. - 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;

  1. - 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
  2. - dacă nu există cazul default, se trece la instrucțiunea de după switch