Ce face for, break și continue
Bucla for are trei părți între paranteze, separate prin ;: inițializarea (rulează o dată, la început), condiția (verificată înainte de fiecare pas) și actualizarea (rulează după fiecare pas). E potrivită când ai nevoie de indice, de exemplu ca să parcurgi un tablou de la coadă sau din doi în doi.
break iese imediat din buclă, iar continue sare peste restul pasului curent și trece la următorul. Ambele afectează doar bucla în care se află direct.
Parametri
| Parametru | Descriere |
|---|---|
inițializare |
De obicei declararea contorului: int i = 0. Variabila există doar în buclă. |
condiție |
Bucla continuă cât timp este true. |
actualizare |
Se execută după fiecare pas: i++, i += 2, i--. |
Exemple
Exemplul 1: Parcurgere cu indice, invers
string[] orase = ["Iași", "Cluj", "Timișoara"];
for (int i = orase.Length - 1; i >= 0; i--)
{
Console.WriteLine($"{i}: {orase[i]}");
}
Rezultat
2: Timișoara
1: Cluj
0: Iași
Exemplul 2: continue și break
Numerele impare sunt sărite cu continue; bucla se oprește complet la primul număr mai mare decât 8.
for (int i = 1; i <= 20; i++)
{
if (i % 2 != 0)
continue;
if (i > 8)
break;
Console.Write($"{i} ");
}
Console.WriteLine();
Console.WriteLine("Gata");
Rezultat
2 4 6 8
Gata
Greșeli frecvente
- Condiția
i <= tablou.Lengthdepășește tabloul cu un element și aruncăIndexOutOfRangeException. Ultimul indice valid esteLength - 1. - Modificarea contorului în corpul buclei (
i++în plus) face codul greu de urmărit și sare elemente. breakdintr-o buclă interioară nu oprește bucla exterioară. Mută codul într-o metodă și foloseștereturn, sau un indicatorbool.
Comenzi înrudite
foreach: Parcurge pe rând fiecare element al unui tablou, al unei liste sau al oricărui IEnumerable, fără indice.while și do-while: Repetă un bloc cât timp o condiție e adevărată; do-while execută blocul cel puțin o dată înainte de verificare.