Înapoi la blog
#c++#condiționale#if#fundamente

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ă scrii if (nota = 5) din greșeală, atribui 5 lui nota ș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.