Estructuras de Repetición y Control de Flujo en C#

Casos de uso: Se emplea cuando el número de iteraciones es conocido de antemano. Ofrece una sintaxis concisa para inicializar, evaluar y actualizar la variable del bucle.

for (inicio; condición; actualización)
{
    // Instrucciones
}

Flujo de ejecución:

  1. Inicio: Se ejecuta una sola vez antes del comienzo del bucle.
  2. Condición: Se evalúa antes de cada iteración. Si es verdadera, se ejecuta el cuerpo del bucle; si es falsa, el bucle termina.
  3. Cuerpo: Se ejecutan las instrucciones contenidas.
  4. Actualización: Se ejecuta después de cada iteración.
  5. Se repiten los pasos 2-4 hasta que la condición sea falsa.
for (int contador = 0; contador < 10; contador++)
{
    Console.WriteLine(contador);
}

Bucles anidados: Es posible anidar bucles for dentro de otros para manejar estructuras de datos multidimensionales o requerimientos de iteración múltiple.

for (int fila = 0; fila < 3; fila++)
{
    for (int columna = 0; columna < 2; columna++)
    {
        Console.WriteLine($"Fila: {fila}, Columna: {columna}");
    }
}
  1. Bucle while

Casos de uso: Repite un bloque de código mientras una condición booleana se mantenga verdadera. Resulta útil cuando el número de iteraciones no se conoce previamente.

while (condición)
{
    // Instrucciones
}

Flujo de ejecución:

  1. Condición: Se comprueba antes de cada iteración.
  2. Cuerpo: Si la condición es verdadera, se ejecuta el bloque de código.
  3. Se repite el paso 1 hasta que la condición se vuelva falsa.
int índice = 0;
while (índice < 10)
{
    Console.WriteLine(índice);
    índice++;
}

Sentencias de control:

  • break: Provoca la salida inmediata del bucle.
  • continue: Omite el resto de la iteración actual y avanza a la siguiente.

Si la condición del bucle nunca se vuelve falsa, se genera un bucle infinito. Una forma sencilla de crearlo es:

while (true)
{
    // Código a repetir indefinidamente
}
  1. Bucle do-while

Casos de uso: Similar al bucle while, pero garantiza que el bloque de código se ejecute al menos una vez, ya que la condición se evalúa después de la primera iteración.

do
{
    // Instrucciones
} while (condición);

Flujo de ejecución:

  1. Cuerpo: Se ejecutan las instrucciones.
  2. Condición: Se evalúa después de cada iteración.
  3. Si la condición es verdadera, se repite el proceso; si es falsa, el bucle finaliza.
int valor = 0;
do
{
    Console.WriteLine(valor);
    valor++;
} while (valor < 10);

Diferencia clave: El bucle while evalúa la condición antes de la primera ejecución del cuerpo, mientras que do-while la evalúa después, asegurando la ejecución inicial.

  1. Bucle foreach

Casos de uso: Diseñado para iterar sobre los elementos de una colección (como arreglos, listas, etc.) de manera sencilla y segura.

foreach (tipo elemento in colección)
{
    // Instrucciones
}

Flujo de ejecución:

  1. Elemento: Se asigna el siguiente elemento de la colección a la variable de iteración.
  2. Cuerpo: Se ejecuta el bloque de código.
  3. Se repite el proceso hasta recorrer todos los elementos de la colección.
int[] datos = { 1, 2, 3, 4, 5 };
foreach (int dato in datos)
{
    Console.WriteLine(dato);
}

Consideraciones Generales

  • Bucles infinitos: Siempre se debe asegurar que la condición de salida pueda volverse falsa.
  • Anidamiento: Los bucles puedan anidarse, pero se recomienda limitar la profundidad para mantener la legibilidad del código.
  • Rendimiento: Al trabajar con grandes volúmenes de datos, es importante optimizar el código dentro del cuerpo del bucle.

Etiquetas: C# estructuras de control bucles for while

Publicado el 7-4 00:14