Programele C++, pe lângă secvențe liniare de instrucțiuni, pot să repete anumite instrucțiuni, cât și să facă decizii, bifurcând execuția programului. În acest articol voi prezenta cum se folosesc instrucțiunile alternative if și switch.

Instrucțiunea if

Instrucțiunea if este folosită pentru a executa o anumită secvență de instrucțiuni dacă și numai dacă condiția dată este adevărată.

Sintaxă if

Semantică if

Întâi se evaluează expresia conditie. Dacă aceasta este true, se execută instrucțiunile de mai jos (de pe prima ramură). Dacă expresia se evaluează la false, se execută instrucțiunile de pe ramura else. Ramura else este opțională. Dacă aceasta nu există, iar expresia este falsă, atunci pur și simplu se trece mai departe. Exemplu:

Dacă în cazul în care valoarea lui x nu este 618 vrem să se afișeze un mesaj corespunzător, vom scrie:

Iată două exemple unde se folosește instrucțiunea if:

Atenție! Fie codul de mai jos:

În ciuda indentării sugestive, în cazul în care a != b, rezultatul nu va fi cel așteptat. Compilatorul crede că ramura else este pentru al doilea if, așa că nu se va afișa nimic. Pentru a evita situațiile de genul acesta, în cazul în care pe prima ramură a unui if se află alt if, recomand încadrarea acestei ramure între acolade, pentru a fi clar al cui if este else-ul. Deci, secvența de mai sus trebuie modificată astfel:

Instrucțiunea switch

Instrucțiunea switch are rolul de a parcurge un șir de constante și de a verifica dacă valoarea unei expresii este egală cu una dintre aceste constante.

Sintaxă switch

Semantică switch

Se evaluează dacă expresie este egală cu constanta1. Dacă da, se execută instructiuni1 și se iese din switch (prin instrucțiunea break). Dacă nu, se continuă testele cu constanta2, etc. Dacă expresie nu este egală nici cu constantaN, atunci se execută instructiuniDefault și se iese din switch. Cazul default este opțional. Dacă la cazul k lipsește instrucțiunea break, iar expresie este egală cu constantaK, se vor executa toate instrucțiunile din switch de la caseK în jos, până la întâlnirea primului break. Nu contează dacă ultimul caz conține break sau nu, pentru că oricum se află la finalul switch-ului.

Atenție! Dacă la două cazuri declarați câte o variabilă locală, iar acestea au același nume, trebuie să încadrați instrucțiunile de la cele două cazuri între acolade, căci altfel variabila se va considera redeclarată și programul nu se va compila.

Acesta este unul dintre marele dezavantaje ale instrucțiunii switch. Foarte rar folosesc switch în locul if-ului. Iată două exemple ce folosesc instrucțiunea switch:

Următorul tutorial C++ este Instrucțiunile repetitive în C++: for, while, do while. Dacă ai vreo problemă în înțelegerea structurilor alternative if și switch, lasă un comentariu și te voi ajuta 🙂

Îți place conținutul acestui site?

Dacă vrei să mă susții în întreținerea server-ului și în a scrie mai multe articole de calitate pe acest blog, mă poți ajuta printr-o mică donație. Află aici cum o poți face!