Instrucțiuni condiționale în C++
Învață if, else if, else și switch în C++ cu exemple clare. Cum ia programul tău decizii și cum eviți greșelile clasice cu operatorii de comparație.
Un program care face mereu același lucru e ca un robot fără ochi. Ca să devină inteligent, trebuie să ia decizii: "dacă plouă, ia umbrela; altfel, lasă-o acasă". În C++, deciziile se iau cu instrucțiuni condiționale. Hai să le stăpânim.
if: cea mai simplă decizie
#include <iostream>
int main() {
int nota;
std::cout << "Ce nota ai luat? ";
std::cin >> nota;
if (nota >= 5) {
std::cout << "Felicitari, ai trecut!" << std::endl;
}
return 0;
}
Condiția dintre paranteze, nota >= 5, e evaluată ca adevărat sau fals. Dacă e adevărată, se execută blocul din acolade. Dacă e falsă, programul îl sare.
else: ce facem când nu se îndeplinește
if (nota >= 5) {
std::cout << "Ai trecut!" << std::endl;
} else {
std::cout << "Mai exersam si data viitoare reusesti." << std::endl;
}
else acoperă toate celelalte cazuri. Nu are condiție proprie — e plasa de siguranță.
else if: mai multe variante
Când ai mai mult de două cazuri, înlănțuiești condițiile:
#include <iostream>
int main() {
int nota;
std::cin >> nota;
if (nota >= 9) {
std::cout << "Excelent!" << std::endl;
} else if (nota >= 7) {
std::cout << "Bine." << std::endl;
} else if (nota >= 5) {
std::cout << "Suficient." << std::endl;
} else {
std::cout << "Insuficient." << std::endl;
}
return 0;
}
Condițiile se verifică de sus în jos. Prima care e adevărată câștigă, iar restul sunt ignorate. De aceea ordinea contează: dacă ai pune >= 5 primul, n-ai ajunge niciodată la >= 9.
Operatorii de comparație
| Operator | Înseamnă |
|---|---|
== | egal cu |
!= | diferit de |
< > | mai mic / mai mare |
<= >= | mai mic-egal / mai mare-egal |
Capcana numărul unu a tuturor începătorilor:
=e atribuire, iar==e comparație. Dacă scriiif (nota = 5)din greșeală, atribui 5 luinotași condiția e mereu adevărată. Atenție mare!
Condiții combinate cu &&, ||, !
Poți lega mai multe condiții:
&&(ȘI) — ambele trebuie să fie adevărate||(SAU) — măcar una adevărată!(NU) — inversează valoarea
#include <iostream>
int main() {
int varsta;
std::cin >> varsta;
if (varsta >= 14 && varsta <= 19) {
std::cout << "Esti elev de liceu, perfect pentru ByteSchool!" << std::endl;
}
return 0;
}
switch: când compari aceeași valoare
Când verifici o singură variabilă pe valori exacte, switch e mai curat decât un șir lung de else if:
#include <iostream>
int main() {
int zi;
std::cin >> zi;
switch (zi) {
case 1: std::cout << "Luni"; break;
case 6:
case 7: std::cout << "Weekend!"; break;
default: std::cout << "Zi de lucru";
}
std::cout << std::endl;
return 0;
}
Nu uita break! Fără el, execuția "cade" în cazul următor — uneori util (cum am grupat 6 și 7), dar de obicei o sursă de bug-uri.
De reținut
Condiționalele sunt creierul programului. Cu if/else și operatorii logici poți modela aproape orice regulă din lumea reală. Exersează scriind un program care decide dacă un an e bisect, sau dacă un triunghi cu trei laturi date e valid.
La ByteSchool nu memorezi sintaxă — înveți să gândești ca un programator, cu probleme reale și feedback de la mentori din Big Tech. Pas cu pas, ajungi să scrii logică pe care ești mândru să o arăți. Te așteptăm.