Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Bucle For | Bucles
Conceptos básicos de C#
course content

Contenido del Curso

Conceptos básicos de C#

Conceptos básicos de C#

1. Comenzando
2. Manejo de Tipos de Datos
3. Estructuras de Control
4. Bucles
5. Arrays
6. Métodos

bookBucle For

Un bucle nos permite ejecutar un fragmento de código tantas veces como queramos. Hay diferentes tipos de bucles. En C#, si queremos ejecutar un fragmento de código un número específico de veces, usamos el bucle for.

La plantilla (sintaxis) de un bucle for es la siguiente:

Ejemplo:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

Nota

i++ es lo mismo que i = i + 1. Incrementa el valor de la variable en 1. i– decrementa el valor en 1.

  • int i = 0 es la parte de iniciación. La iniciación se realiza cuando comienza el bucle. Así que al inicio del bucle se crea una nueva variable temporal llamada i y se inicia con un valor de 0;
  • i < 10 es la condición. La condición se verifica en cada iteración (repetición) del bucle. El bucle continúa ejecutando el bloque de código encerrado mientras la condición sea verdadera;
  • i++ es la operación a realizar después de cada iteración. La operación suele ser incremento o decremento. Dado que el valor de i se incrementa después de cada iteración, la condición i < 10 se vuelve falsa después de 10 iteraciones y el bucle se detiene;

El siguiente diagrama explica el flujo de un bucle for de manera visual:

Es importante notar que los tres componentes initiation, condition y operation son opcionales y, por lo tanto, cualquiera de ellos puede omitirse, pero el bucle podría comportarse de manera diferente según los cambios.

No es una práctica recomendada, pero podemos declarar la variable del bucle fuera del bucle y dejar la parte de initiation vacía.

cs

main

copy
12345678910111213141516
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }

También podemos eliminar la parte de operation y colocarla al final del bloque de código del bucle. El bucle se comportará igual que antes, ya que la variable i sigue siendo incrementada después de cada iteración.

cs

main

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }

Tenga en cuenta que en el código anterior todavía colocamos un punto y coma (;) en la sintaxis del bucle donde se esperaba int i = 0. Este punto y coma siempre debe estar allí, ya sea que creemos una variable de bucle o no.

Eliminar la condición del bucle también es posible, pero hace que el bucle se ejecute infinitamente en caso de que no se termine manualmente (lo cual aprenderemos más adelante en los capítulos posteriores).

cs

main

copy
1234567891011121314151617
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }

Tenga en cuenta que todavía incluimos ambos puntos y comas en la sintaxis del bucle for(;;), estos son esenciales, de lo contrario, el compilador mostrará errores.

Dado que el valor de i cambia en cada iteración, podemos usarlo a nuestro favor. Para entender esto, veamos un programa simple que muestra el valor de i en cada iteración:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }

Tenga en cuenta que termina en 9 porque comienza con el dígito 0. El número total de iteraciones fue diez. Podemos modificar la iniciación, la condición y la operación para mostrar los diez números pares del 2 al 20.

Nota

Los números pares son los números que son divisibles por 2. Por ejemplo, 2, 4, 6, 8, 10, etc. Los números pares también incluyen el número 0, pero solo trataremos con números pares por encima de 0 en estos ejemplos.

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }

Nota

i += 2 es una forma más corta de escribir i = i + 2. Esta sintaxis también es válida para otros operadores, por ejemplo, i -= 2, i *= 2, i /= 2, i %= 2, etc.

El bucle comienza con 0 y aumenta el valor de i en 2 cada iteración. Cambiamos la condición a i <= 20 para que el bucle se detenga en 20.

La lógica anterior era para entender el funcionamiento de un bucle for. Podemos usar una lógica mucho más simple para mostrar los primeros diez números pares:

cs

main

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }

En este caso, la condición es mucho más simple. Por ejemplo, si queremos los primeros 27 números pares, tendremos que saber cuál es el 27º número par para poder formar la condición para el método anterior, sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27:

cs

main

copy
1234567891011121314
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
¿Cuál será la salida del siguiente programa? El valor de `sum` aumenta cada iteración en `i`, por lo tanto, su valor durante las primeras cuatro iteraciones será: `1`, `3`, `6`, `10`.

¿Cuál será la salida del siguiente programa? El valor de sum aumenta cada iteración en i, por lo tanto, su valor durante las primeras cuatro iteraciones será: 1, 3, 6, 10.

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 1
some-alt