Nivelul 2 — Controlul fluxului
Bucle
Note originale de SunDiaL · Vezi sursa în engleză
Bucle
O buclă face calculatorul să repete aceleași linii de cod de mai multe ori.
Cele 3 componente: start, stop, step
În teorie, fiecare buclă ar trebui să aibă (explicit sau în culise) următoarele 3 componente:
- Start = starea/condițiile inițiale la prima intrare în buclă
- Stop = condiția de ieșire din buclă
- Step = o instrucțiune care, în mod ideal, apropie bucla de oprire În practică, poți scrie bucle cărora le lipsesc unele componente, rezultând fie o buclă care nu funcționează, fie una care nu se oprește. Există 3 tipuri de bucle pe care le poți scrie:
Bucla while
While este o buclă definită printr-o valoare booleană. Când valoarea este true, bucla se execută; când este false, bucla nu se execută. Dar acest lucru nu este foarte util, motiv pentru care în 99% dintre cazuri o buclă while este definită printr-o condiție (al cărei rezultat este boolean).
Este folosită în general când numărul de pași nu este cunoscut.
bool condition;
while(condition)
{
//do stuff
}
Bucla do while
Este identică cu bucla while, cu excepția faptului că expresia condiției este scrisă la sfârșit. Astfel, bucla se execută cel puțin o dată.
bool condition;
do
{
//do stuff
}
while(condition);
Bucla for
O buclă for este definită prin o stare inițială, o condiție de oprire și un pas. Este folosită în general când numărul de repetări este cunoscut dinainte.
//note the (start;stop;step) format
for(int i = 1; i <= 10; i++)
{
//do stuff
}
Este echivalentă cu următoarea buclă while:
int i = 1;
while(i <= 10)
{
//do stuff
i++;
}
Bucla foreach
Foreach este o buclă care parcurge colecții.
List<int> someNumbers = [1, 3, 5, 7, 9];
foreach(int number in someNumbers)
{
//do something with the number
}
Este echivalentă cu următoarea buclă for:
List<int> someNumbers = [1, 3, 5, 7, 9];
for(int i = 0; i < someNumbers.Length; i++)
{
int number = someNumbers[i];
//do something with the number
}