72080 afișări Candale Silviu (silviu) 04.01.2022 www.pbinfo.ro
Etichete: nicio etichetă

Instrucțiunea for este o structură repetitivă cu număr necunoscut de pași și test inițial, echivalentă cu while.

Sintaxa

for (Expresie_de_Initializare ; Expresie_de_Testare ; Expresie_de_Continuare) Instructiune

Mod de execuție

  1. Se evaluează Expresie_de_Initializare
  2. Se evaluează Expresie_de_Testare. Rezultatul se convertește la bool.
  3. Dacă rezultatul este true:
    • Se execută Instructiune.
    • Se evaluează Expresie_de_Continuare.
    • Se revine la pasul 2.
  4. Dacă rezultatul este false, se trece la instrucțiunea de după for.

Observații

  • Instrucțiunea for este echivalentă cu instrucțiunea while. Sintaxa descrisă mai sus este echivalentă cu:

Expresie_de_Initializare; while( Expresie_de_Testare ) { Instructiune Expresie_de_Continuare; }

  • Instructiune se execută cât timp Expresie_de_Testare este nenulă – condiție adevărată.
  • Dacă Expresie_de_Testare este de început vidă, Instructiune nu se execută deloc, iar Expresie_de_Continuare nu se mai evaluează.
  • Instructiune poate fi orice fel de instrucțiune, dar una singură. Dacă sunt necesare mai multe instrucțiuni, se va folosi instrucțiunea compusă.
  • Este necesar ca cel puțin o variabilă care apare în Expresie_de_Testare să-și modifice valoarea în Instructiune sau la evalurea Expresiei_de_Continuare. Altfel se obține o buclă infinită.
  • Cele trei expresii, de_Initializare, _de_Testare și _de_Continuare sunt separate prin caracterul ; – obligatoriu!
  • Oricare dintre cele trei expresii, de_Initializare, _de_Testare și _de_Continuare, eventual toate, poate să lipsească. În acest caz avem expresii vide. Dacă Expresie_de_Testare este vidă, rezultatul său este nenul!
  • Expresie_de_Initializare se execută o singură dată. Poate să conțină și declararea unor variabile. În acest caz, variabilele vor exista numai în instrucțiunea for.

Exemplu

Următorul program citește valoarea variabilei n și calculează suma primelor n numere naturale. Rulați-l analizând rezultatul pentru diverse valori ale lui n, inclusiv 0.

#include <iostream>
using namespace std;
int main ()
{
    int n;
    cin >> n;
    int S = 0;
    for(int i = 1; i <= n ; i ++)
        S += i;
    cout << S << endl;
    return 0;
}

72080 afișări Candale Silviu (silviu) 04.01.2022 www.pbinfo.ro