¿Qué bucle usar, para o hacer / mientras?
Usando C # (o VB.NET), ¿qué bucle (para bucle o hacer / bucle de bucle) debería usarse cuando se requiere un contador?
¿Hay alguna diferencia si el bucle solo debe iterar un número determinado de veces o en un rango establecido?
Escenario A - El bucle for
for (int iLoop = 0; iLoop < int.MaxValue; iLoop++)
{
//Maybe do work here
//Test criteria
if (Criteria)
{
//Exit the loop
break;
}
//Maybe do work here
}
Ventajas
El contador se declara como parte del bucle.Rango de contador fácil de implementarDesventajas
Hay que usar un si para salir del bucle.Escenario B - El bucle do / while
int iLoop = 0;
do
{
//Increment the counter
iLoop++;
//Do work here
} while (Criteria);
o
int iLoop = 0;
while (Criteria)
{
//Increment the counter
iLoop++;
//Do work here
}
Ventajas
Salir del bucle es parte de la estructura del bucle.Elección para evaluar antes o después del bloqueo del bucle.Desventajas
Hay que gestionar el contador manualmente.