Bucle — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

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
}