M5 L3 Structura alternativă

Structura alternativă este reprezentată de instrucțiunea de control a fluxului if-else(dacă-altfel), care permite executarea unor blocuri de cod diferite în funcție de o condiție. Aceasta este denumită „structură alternativă” deoarece programul poate urma una dintre două căi alternative.

Sintaxa generală:

if (condiție) {
    // Codul executat dacă condiția este adevărată
} else {
    // Codul executat dacă condiția este falsă
}

Exemplu simplu:

#include <iostream>
using namespace std;

int main() {
    int numar;
    cout << "Introdu un numar: ";
    cin >> numar;

    if (numar % 2 == 0) {
        cout << "Numarul este par." << endl;
    } else {
        cout << "Numarul este impar." << endl;
    }

    return 0;
}

Variante:

  1. Doar if (fără alternativă):
if (condiție) {
    // Codul executat doar dacă condiția este adevărată
}

2. if - else if - else (structură alternativă multiplă):

if (condiție1) {
    // Cod pentru condiția 1
} else if (condiție2) {
    // Cod pentru condiția 2
} else {
    // Cod dacă niciuna dintre condițiile de mai sus nu este îndeplinită
}

3. if-else se poate înlocui cu switch (doar pentru cazuri discrete)

Pentru variabile de tip întreg sau caracter, poți folosi și switch:

int optiune = 2;

switch(optiune) {
    case 1:
        cout << "Ai ales 1\n";
        break;
    case 2:
        cout << "Ai ales 2\n";
        break;
    default:
        cout << "Optiune necunoscuta\n";
        break;
}

Iată un exemplu simplu în C++ care citește două numere întregi a și b de la tastatură și afișează care dintre ele este mai mare, folosind structura alternativă if-else:

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cout << "Introdu primul numar (a): ";
    cin >> a;

    cout << "Introdu al doilea numar (b): ";
    cin >> b;

    if (a > b) {
        cout << "Numarul mai mare este: " << a << endl;
    } else if (b > a) {
        cout << "Numarul mai mare este: " << b << endl;
    } else {
        cout << "Numerele sunt egale." << endl;
    }

    return 0;
}

Explicație:

  • Se citesc valorile a și b de la tastatură.
  • Se compară cele două numere:
    • Dacă a > b, se afișează a.
    • Dacă b > a, se afișează b.
    • Dacă sunt egale, se afișează un mesaj corespunzător.

Un exemplu de program C++ care folosește instrucțiunea switch. Acest program citește o opțiune de la tastatură și afișează un mesaj în funcție de opțiune:

Exemplu: Meniu simplu cu switch

#include <iostream>
using namespace std;

int main() {
    int optiune;

    cout << "Meniu:" << endl;
    cout << "1. Afiseaza salut" << endl;
    cout << "2. Afiseaza mesajul Acum faci informatica!" << endl;
    cout << "3. Afiseaza cum se inchide corect programul" << endl;
    cout << "Alege o optiune (1-3): ";
    cin >> optiune;

    switch (optiune) {
        case 1:
            cout << "Salut! Bine ai venit!" << endl;
            break;
        case 2:
            cout << "Acum faci informatica!" << endl; 
            break;
        case 3:
            cout << "Programul se inchide daca apesi orice tasta." << endl;
            break;
        default:
            cout << "Optiune invalida!" << endl;
            break;
    }

    return 0;
}

Explicație:

  • switch(optiune) verifică valoarea introdusă.
  • Pentru fiecare case, dacă valoarea se potrivește, se execută blocul respectiv.
  • break oprește executarea și iese din switch.
  • default este cazul implicit, folosit când valoarea nu corespunde niciunui case.

Temă:

Să se explice linie cu linie fiecare program din această pagină.