a) Instrucţiunea if:
Structurile alternative dirijează execuţia unei secvenţe de instrucţiuni (s1 sau s2) in funcţie de valoarea de adevar a unei condiţii plasate in blocul de decizie. Dacă secvenţa s1 sau s2 conţine mai multe instrucţiuni, acestea sunt introduse intr-un bloc de instrucţiuni. Dacă secvenţa s2 este vida (structura pseudoalternativă), instrucţiunea if nu are ramura else.
Sintaxa:
if(conditie)
s1
else
s2
Exemplu: Ordonarea a 3 numere naturale:
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a,b,c,x;
cin >> a >> b >> c;
if (a>b) { //secventa contine 3 instructiuni deci le grupam cu " { } "
x=b;
b=a;
a=x;
}
if (b>c) {
x=c;
c=b;
b=x;
}
if (a>b) {
x=b;
b=a;
a=x;
}
cout << a << ", " << b << ", " << c;
getch();
}
b) Instrucţiunea de selecţie:
Structura alternativa de selecţie dirijează execuţia unei secvenţe de instrucţiuni (s1,s2, .. ,sn) in funcţie de valoarea unui selector.
Sintaxa:
switch(selector) {
case v1 :s1;break;
case v2 :s2;break;
...
case vm :sm;break;
default:s; // default poate sa lipseasca
}
Legenda:
- selector este o expresie de tip int sau char,
- v1,..,vm sunt expresii constante de acelaşi tip cu expresia selector.
Exemplu: Se citesc de la tastatură două numere intregi x şi y. Programul realizează una dintre următoarele operaţii aritmetice, potrivit opţiunii alese: suma, diferenţa, produsul, catul impărţirii intregi.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int x,y,optiune;
cin >> x >> y;
cout << "Suma=1 | Diferenta=2 | Produs=3 | Cat=4" << endl << "Optiune: ";
do {
cin >> optiune;
} while(optiune<1 && optiune>4);
cout << endl;
switch(optiune) {
case 1: cout << "Suma= " << x+y;break;
case 2: cout << "Diferenta= " << x-y;break;
case 3: cout << "Produsul= " << x*y;break;
case 4: cout << "Catul= " << x/y;break;
}
getch();
}