Instrucțiunea if - else

Instrucțiunea if evaluează o condiție și execută un bloc de instrucțiuni numai dacă aceasta este adevărată. Opțional, ramura else indică ce se execută atunci când condiția este falsă.

Este cea mai simplă structură de decizie și echivalentul în C++ al structurii dacă - altfel din pseudocod.

Schema logică a instrucțiunii if - else
Schema logică a instrucțiunii if - else

Sintaxă

if (conditie) {
    // instructiuni executate cand conditia este adevarata
} else {
    // instructiuni executate cand conditia este falsa
}

Ramura else nu este obligatorie. Dacă blocul conține o singură instrucțiune, acoladele pot lipsi.

Condiția se scrie întotdeauna între paranteze rotunde. Ea este considerată adevărată dacă valoarea ei este nenulă, așa că if (x % 2) este o formă scurtă pentru if (x % 2 != 0).

Exemplu: doar if

Enunț. Se citește un număr întreg. Să se afișeze mesajul „Numar impar” dacă numărul este impar.

int x;
cin >> x;
if (x % 2)
    cout << "Numar impar";

Condiția x % 2 este adevărată (restul împărțirii la 2 este 1) exact atunci când numărul este impar. Dacă numărul este par, nu se afișează nimic și programul continuă.


Publicitate

Exemplu: if - else

Enunț. Se citește un caracter. Să se stabilească dacă este o cifră sau alt caracter.

char x;
cin >> x;
if (x >= '0' && x <= '9')
    cout << "Cifra";
else
    cout << "Alt caracter";

Comparăm caracterul citit cu cifrele '0' și '9'. Pentru că tipul char reține codul numeric al caracterului, iar cifrele au coduri consecutive, un caracter este cifră dacă se află între '0' și '9'. Dacă da, se execută ramura if; altfel, ramura else.

Exemplu: if - else if - else

Atunci când avem mai mult de două cazuri, putem înlănțui mai multe condiții folosind else if.

Enunț. Se citește un număr întreg. Să se stabilească semnul lui (negativ, pozitiv sau zero).

int x;
cin >> x;
if (x < 0)
    cout << "Numar negativ";
else if (x > 0)
    cout << "Numar pozitiv";
else
    cout << "Egal cu zero";

Programul verifică pe rând: dacă x este negativ, afișează și se oprește; altfel verifică dacă este pozitiv; dacă nicio condiție nu este adevărată, rămâne singura posibilitate, zero. Înlănțuirea else if este mai eficientă decât mai multe instrucțiuni if separate, pentru că, odată găsit cazul potrivit, restul condițiilor nu mai sunt verificate.

Concluzii

Instrucțiunea if - else este temelia deciziilor în program: execută o ramură sau alta în funcție de o condiție. Pentru situațiile cu multe cazuri discrete, bazate pe valoarea unei singure expresii, există o alternativă mai compactă, instrucțiunea switch.