csharp-bucle-for

Qué es y cómo usar el bucle FOR en C#

Un bucle for es una estructura de control que repite un bloque de código un número determinado de veces. Es una de las estructuras de control más utilizadas en C#.

Sintaxis básica

La sintaxis de un bucle for en C# se compone de tres partes principales: inicialización, condición y actualización. Estas partes se especifican dentro de los paréntesis del bucle for y están separadas por punto y coma.

La estructura básica de un bucle for en C# es la siguiente:

for (inicialización; condición; actualización)
{
    // Instrucciones a ejecutar en cada iteración
}

Veamos cada una de las partes:

  • Inicialización: En esta parte del bucle, se establecen los valores iniciales de las variables que controlarán la ejecución del bucle (por lo general, se utiliza para inicializar un contador que se incrementará o decrementará en cada iteración)

  • Condición: La condición es una expresión booleana que se evalúa antes de cada iteración. Si la condición es verdadera, se ejecutan las instrucciones dentro del bucle. Si la condición es falsa, se sale del bucle y se continúa con la ejecución del programa

  • Actualización: En esta parte del bucle, se realiza una acción que modifica el valor de las variables que controlan el bucle (por lo general, se utiliza para incrementar o decrementar el contador)

  • Instrucciones a ejecutar: Aquí se especifican las instrucciones que se ejecutan en cada iteración. Estas instrucciones pueden ser cualquier tipo de código válido en C# (como asignaciones, cálculos, llamadas a métodos, et)

Ejemplo básico

Veamos un ejemplo sencillo donde se utiliza un bucle for para imprimir los números del 1 al 10:

for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}

En este ejemplo:

  • La inicialización int i = 1 establece el valor inicial de i en 1.
  • La condición i <= 10 asegura que el bucle se ejecute mientras i sea menor o igual a 10.
  • La actualización i++ incrementa i en 1 después de cada iteración.
  • Dentro del bucle, utilizamos el método Console.WriteLine() para imprimir el valor actual de i en la consola.

El resultado es que se mostrarán los números de 1 a 10 en la pantalla.

Modificación del flujo del bucle

Salto de iteraciones con continue

La instrucción continue se utiliza para saltar la iteración actual y pasar directamente a la siguiente iteración del bucle.

for (int i = 0; i < 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // Saltar los números pares
    }
    Console.WriteLine(i);
}

Interrupción del bucle con break

El uso de la instrucción break permite salir del bucle antes de que se cumpla la condición. Esto es útil en situaciones donde se encuentra un valor específico y no es necesario seguir iterando.

for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break;
    }
    Console.WriteLine(i);
}

Casos particulares

Es posible realizar casos más “originales” del bucle For. En general no es buena idea hacerlo. Pero os lo cuento, aunque solo sea para que si algún día lo veis, le echéis la bronca a alguien. 😉

Uso de variables externas

Es posible usar una variable declarada fuera del bucle for como la variable de control. Sin embargo, esto puede llevar a confusión y errores si no se gestiona adecuadamente:

int i = 0;
for (i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}
Console.WriteLine($"Valor de i después del bucle: {i}");

En este caso, i conserva su valor después de que el bucle ha terminado, que será 5.

Declaraciones múltiples

En la sección de inicialización y actualización, se pueden incluir múltiples declaraciones separadas por comas. Esto es útil cuando se necesitan varias variables de control:

for (int i = 0, j = 10; i < j; i++, j--)
{
    Console.WriteLine($"i: {i}, j: {j}");
}

Ejemplos prácticos

Generar una tabla de multiplicar

En este ejemplo, se genera una tabla de multiplicar para un número específico usando un bucle for.

int numero = 5; // Número para el cual se genera la tabla de multiplicar

for (int i = 1; i <= 10; i++) // Itera del 1 al 10
{
    Console.WriteLine($"{numero} x {i} = {numero * i}"); // Imprime la multiplicación del número por 'i'
}

Iteración sobre Arrays

Una de las aplicaciones más comunes del bucle for es iterar sobre los elementos de un array. Aquí hay un ejemplo que suma todos los elementos de un array:

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array
int suma = 0; // Variable para almacenar la suma

for (int i = 0; i < numeros.Length; i++)
{
    suma += numeros[i]; // Suma cada elemento del array a 'suma'
}

Console.WriteLine($"La suma de los elementos es: {suma}");

Iteración con paso diferente

El valor de la actualización no siempre tiene que ser un incremento de uno. Puede ser cualquier expresión que modifique la variable de control. Por ejemplo, iterar en pasos de dos:

for (int i = 0; i < 10; i += 2) // Incrementa 'i' en 2 en cada iteración
{
    Console.WriteLine(i); // Imprime el valor actual de 'i'
}

Bucle for decreciente

También se puede usar el bucle for para iterar en orden decreciente:

for (int i = 10; i > 0; i--) // Decrementa 'i' en 1 en cada iteración
{
    Console.WriteLine(i); // Imprime el valor actual de 'i'
}

Búsqueda de un elemento en un Array

int[] numeros = { 1, 2, 3, 4, 5 }; // Declaramos el array
int buscar = 3; // Número a buscar
bool encontrado = false; // Variable para indicar si el número fue encontrado

for (int i = 0; i < numeros.Length; i++)
{
    if (numeros[i] == buscar) // Compara cada elemento con el número buscado
    {
        encontrado = true; // Marca que el número fue encontrado
        break; // Sale del bucle
    }
}

if (encontrado)
{
    Console.WriteLine($"El número {buscar} se encuentra en el array.");
}
else
{
    Console.WriteLine($"El número {buscar} no se encuentra en el array.");
}

Estos ejemplos tienen el propósito de mostrar cómo utilizar el bucle For. No significa que sea la mejor forma de resolver el problema que abordan. Lo normal es que haya alternativas mejores