
Instrucțiunea do while (structuri repetitive)
Această lecție este despre structura repetitivă do while: definiție, exemple și exerciții propuse.
De multe ori se întâmplă să avem nevoie să repetăm un set de instrucțiuni de un număr de ori. Iată câteva exemple:
- Să calculăm valoarea
a^b
(a
la putereab
): trebuie să îl înmulțim pea
în mod repetat, deb
ori; - Să calculăm media a
n
numere.
Limbajul C++ ne oferă o varietate de modalități de a repeta un set de
instrucțiuni. În această lecție vom vorbi despre structura repetitivă do while
, dar dacă vrei să vezi toate structurile repetitive în C++, poți intra
pe această pagină.
Spre deosebire de structura while
, do while
execută instrucțiunile dintre
acolade cel puțin o dată, indiferent dacă condiția
este adevărată sau
nu.
Se recomandă să cunoști structura de decizie (if
și switch
) și structura repetitivă
while înainte de a
parcurge această lecție.
Sintaxă
Sintaxa structurii do while
este oarecum pe dos față de cea a while
ului:
do {
instrucțiune 1;
instrucțiune 2;
…
} while(condiție);
Structura aceasta are sens dacă stăm să ne gândim: mai întâi executăm
instrucțiunile, după care verificăm dacă condiția
este adevărată sau nu,
urmând să mai iterăm încă odată dacă este cazul.
Exemplu
Afișăm primele n
numere naturale, sau 0
, dacă n < 0
:
//Pentru n = 5, se va afișa:
//0 1 2 3 4
//Pentru n = -1, se va afișa:
//0
int i = 0, n;
cin >> n;
do {
cout << i << " ";
i++;
} while(i < n);
Problemă rezolvată
Împărțiri repetate
Dându-se un număr natural n
, să se împartă repetat la 5
, afișând de
fiecare dată câtul dat, până când n
este 0
.
Exemple: Pentru n = 126
se va afișa 126 25 5 1
, iar pentru n = 0
se
va afișa 0
.
Rezolvare: Vom citi n
, după care, folosind o structură repetitivă de tip
do while
, îl vom împărți pe n
la 5
în mod repetat.
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
do {
cout << n << " ";
n /= 5;
} while(n != 0);
}
Exercițiu propus
Completează următoarea secvență de cod:
Să se afișeze primele n
numere naturale nenule:
int n, i = 1;
cin >> n;
??? {
cout << i << " ";
i++;
} ???(i <= n);
Bibliografie și alte resurse
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0