Instrucțiunea if - else
Instrucțiunea
ifevaluează o condiție și execută un bloc de instrucțiuni numai dacă aceasta este adevărată. Opțional, ramuraelseindică 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.
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ă.
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.