Instrucțiunea switch
Instrucțiunea switch este utilă atunci când vrem să executăm acțiuni diferite în funcție de valoarea unei expresii.
De exemplu:
int optiune;
cin >> optiune;
switch (optiune) {
case 1:
cout << "Adaugare";
break;
case 2:
cout << "Stergere";
break;
case 3:
cout << "Afisare";
break;
default:
cout << "Optiune invalida";
}
Cum funcționează?
switch verifică valoarea expresiei și caută un case corespunzător.
Pentru:
optiune = 2
avem:
case 1 → nu
case 2 → da
↓
afișează "Stergere"
↓
break
case indică o valoare posibilă:
case 2:
iar break încheie cazul respectiv.
Rolul lui break
Fără break, programul continuă și cu instrucțiunile din cazurile următoare.
De aceea, în mod obișnuit scriem:
case 1:
cout << "Unu";
break;
De reținut:
breakîncheie cazul curent și iese dinswitch.
default
default este executat dacă niciun case nu corespunde valorii.
default:
cout << "Valoare invalida";
Este asemănător cu ultimul else dintr-o structură if.
Exemplu complet
Se citesc două numere întregi a, b și un caracter op, care reprezintă operația dorită:
+ → adunare
- → scădere
* → înmulțire
Programul:
#include <iostream>
using namespace std;
int main() {
int a, b;
char op;
cin >> a >> b >> op;
switch (op) {
case '+':
cout << a + b;
break;
case '-':
cout << a - b;
break;
case '*':
cout << a * b;
break;
default:
cout << "Operator invalid";
}
return 0;
}
Exemplu de input
8 3 *
Variabilele primesc:
a = 8
b = 3
op = '*'
switch caută cazul:
case '*':
și execută:
cout << a * b;
Output
24
switch vs. if
switch este potrivit când comparăm aceeași expresie cu mai multe valori exacte:
x este 1?
x este 2?
x este 3?
Pentru condiții precum:
x > 10
x % 2 == 0
x >= 10 && x <= 99
folosim if.
Pe scurt:
switch → cazuri bazate pe valori exacte
if → condiții generale
Recapitulare
Structura de bază:
switch (expresie) {
case valoare1:
// instrucțiuni
break;
case valoare2:
// instrucțiuni
break;
default:
// dacă niciun caz nu corespunde
}
Reține:
switch → verifică valoarea
case → definește un caz
break → încheie cazul
default → niciun caz nu s-a potrivit
Ideea esențială:
switchalege ce să execute în funcție de valoarea unei expresii.