Structuri de control în C++

Structuri repetitive

Structura while

La o structură while întâi se verifică dacă condiția este îndeplinită. Dacă aceasta este îndeplinită se execută codul dintre acolade, în caz contrar se iese din buclă:

int i = 0;
while(i++ < 3){
    cout << i;
}

Structura do...while

Într-o structură do...while mai întâi se execută codul dintre acolade și doar apoi se verifică dacă condiția este îndeplinită. Astfel indiferent de condiție, structura do...whilese execută cel puțin o dată:

int i = 0;
do {
    cout << i;
} while(i++ < 3);

Structura for

Instrucțiunea for permite programului repetarea uneia sau mai multor instrucțiuni. Această intrucțiune are trei secțiuni: una de inițializare, una de testare a unei condiții și una de incrementare

for(inițializare; test; incrementare)

Toate cele trei secțiuni sunt opționale, astfel că putem avea diverse variante de declarare:

for(; contor < 1000; contor++)
sau
for(; contor < 1000;)
sau
for(;;) //aici bucla se va repeta la infinit

La o structură for întâi se verifică dacă condiția este îndeplinită. Dacă aceasta este îndeplinită se incrementează contorul i se execută codul dintre acolade, în caz contrar se iese din buclă:

int i = 0;
for(int i = 0; i < 3; i++){
    cout << i;
}

Structuri condiționale

Structura if[-else]

O instrucțiune if poate fi urmată de o declarație else opțională, care se execută atunci când expresia booleană este falsă.

int i = 0;
if(i < 3){
    cout << "Răspuns corect!";
}

else if(i == 3){
    cout << "Răspuns incorect!";
}

else {
   cout << "Tot incorect!";
}

Structura switch

O structură de tip switch permite ca o variabilă să fie testată pentru egalitate față de o listă de valori. Fiecare valoare este numită un caz, iar variabila testată este verificată pentru fiecare caz de comutare în parte.

# include <iostream>
using namespace std;

int main(){

    char nota = 'B';
    switch(nota){
        case 'A' :
           cout << "Excelent!\n";
           break;
        case 'B' :
        case 'C' :
           cout << "Excelent!\n";
           break;
        case 'D' :
           cout << "Ai trecut!\n";
           break;
        case 'E' :
           cout << "Mai încearcă!\n";
           break;
        default :
           cout << "Notă invalidă\n";
           break;
    }
    cout << "Nota este %c \n" << nota;
}

Instrucțiunea continue

Există situații când se dorește suprimarea execuției intrucțiunilor dintr-o buclă (while sau for), în funcție de o anumită condiție. Acest lucru se poate realiza cu ajutorul instrucțiunii continue ce permite trecerea peste iterația curentă, fără a executa intrucțiunile până la finalul buclei.

int contor;
for (contor = 1; contor <= 100; counter++)
cout << "Valori pare\n";
    {
        if (contor % 2) // numere impare
            continue;
        cout << contor << " "; //afisează doar numerele pare
    }

Instrucțiunea break

Pentru a ieși complet dintr-o buclă, înainte de a se îndeplinii condiția de terminare buclei, se poate folosi instrucțiunea break:

int contor;
for (contor = 1; contor <= 100; contor++)
    {
        if (contor == 50)
           break;
        cout << contor << " ";
    }

Instrucțiunea break se recomandă a se folosi doar în cadrul instrucțiunii switch. Pentru bucle se recomandă adaugarea de condiții suplimentare în declararea buclei.

Temă:

1.De creat un program care permite însumarea unor numere introduse de la tastatură. Programul se sfârșește atunci când utilizatorul introduce valoarea zero de la tastatură. La final se va afișa suma numerelor primite de la tastatură(se va folosi bucla do-while prezentată mai sus).

2.De creat un program care afișează numerele impare de la 0 până la 50 și cele pare între 50 și 100.