CodeGym /Cursos /C# SELF /El bucle for: introducción y matices de uso

El bucle for: introducción y matices de uso

C# SELF
Nivel 4 , Lección 2
Disponible

1. Introducción

Imagínate que tienes una tarea: mostrar en pantalla diez veces «¡Hola!». Claro, podrías escribir diez líneas con Console.WriteLine("¡Hola!"); — pero ahora ya conoces el bucle while, así que esto no es problema para ti.

Pero hay otro bucle — for, que repite la acción necesaria el número de veces que quieras. ¡Y sabe contar él solo!

Aquí tienes un ejemplo típico:

for (int i = 0; i < 10; i++)
{
    Console.WriteLine("¡Hola!");
}
Bucle for clásico — mostrar "¡Hola!" 10 veces

¿Qué hace este código? Muestra en pantalla la palabra «¡Hola!» exactamente 10 veces. Sin copy-paste ni dolor de muñeca.

2. Sintaxis del bucle for

El bucle for tiene tres partes principales, que se escriben entre paréntesis después de la palabra clave for:

for (inicialización; condición; cambio)
{
    // Cuerpo del bucle
}
Sintaxis general del bucle for

Vamos a ver cada elemento en detalle:

  • Inicialización — normalmente es crear una variable contador, desde donde empiezan las repeticiones (int i = 0).
  • Condición — se comprueba antes de cada iteración. Si es verdadera — se ejecuta el cuerpo del bucle. Si es falsa — el bucle termina. Por ejemplo, i < 10.
  • Cambio — el operador que se ejecuta después de cada iteración. Normalmente incrementa o decrementa el valor del contador (i++).

Puedes dibujar un esquema:

3. Comparación entre for y while

Quizá lo entiendas mejor si te digo que for es solo otra forma de escribir un bucle while.

Antes teníamos un bucle while:

int i = 0;					// Inicialización de la variable para el bucle
while(i < 10)				// Comprobación de la condición para continuar el bucle
{
    Console.WriteLine(i); 	// Acción útil (cuerpo del bucle)
    i++;					// Incremento del contador
}

Podemos escribirlo como un bucle for, simplemente moviendo todas las acciones que controlan la lógica del bucle:

for (int i = 0; i < 10; i++)  // Inicialización; Comprobación de la condición; Incremento del contador
{
    Console.WriteLine(i);		// Acción útil (cuerpo del bucle)
}

Pasos de funcionamiento de ambos bucles:

  1. La inicialización int i = 0; se ejecuta una vez antes del bucle.
  2. Luego se comprueba la condición i <= 10
  3. Después la acción útil del bucle Console.WriteLine(i);
  4. Luego el incremento del contador i++
  5. Después vuelve al paso 2.

4. Ejemplos de uso del bucle for

El ejemplo más sencillo

Vamos a mostrar los números del 1 al 5:

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

Salida:

1
2
3
4
5

Nota: si hubieras escrito i < 5, la última salida sería 4.

Cuenta atrás

¿Quieres sentirte como un astronauta? ¡Vamos a hacer una cuenta atrás!

for (int i = 5; i > 0; i--)
{
    Console.WriteLine(i);
}
Console.WriteLine("¡Vamos!");

Salida:

5
4
3
2
1
¡Vamos!

El paso del bucle distinto de 1

Puedes cambiar el contador no solo en 1, sino en cualquier otro número:

for (int i = 0; i <= 10; i += 2)
{
    Console.WriteLine(i);
}
// Mostrará: 0 2 4 6 8 10

5. Variaciones del bucle for

Varias variables en el bucle

A veces es útil controlar dos variables a la vez. Por ejemplo, vamos a mostrar números de derecha a izquierda y de izquierda a derecha:

for (int izquierda = 1, derecha = 10; izquierda <= 10; izquierda++, derecha--)
{
    Console.WriteLine($"{izquierda}  {derecha}");
}

Salida:

1  10
2  9
3  8
...
10  1

Bucle for infinito

Si el caso es muy hardcore (por ejemplo, tu proyecto es una máquina de movimiento perpetuo en IT), puedes hacer un bucle for "eterno":

for (;;) // sin inicialización, sin condición, sin cambio
{
    Console.WriteLine("¡Trabajar, trabajar y trabajar otra vez!");
}
Bucle for infinito

Atención: este bucle solo termina si en el cuerpo hay break, return o throw. No lo uses sin motivo, o puedes despertar al demonio antiguo — "El proceso no responde".

2
Tarea
C# SELF, nivel 4, lección 2
Bloqueada
Números pares del 2 al 20
Números pares del 2 al 20
2
Tarea
C# SELF, nivel 4, lección 2
Bloqueada
Cuenta regresiva con mensaje
Cuenta regresiva con mensaje
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION