Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Bucle For | Bucles
Fundamentos de C#

bookBucle For

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

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

for(initiation; condition; operation) { 
    // code to execute
}


Consideremos un ejemplo donde utilizamos esta sintaxis:

main.cs

main.cs

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 equivalente a i = i + 1. Incrementa el valor de la variable en 1. De manera similar, i-- decrementa el valor en 1.

  • int i = 0 es la parte de inicialización. La inicialización ocurre cuando el bucle comienza. Al inicio del bucle, se crea una nueva variable temporal llamada i y se inicializa con el valor 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 mientras la condición sea verdadera.
  • i++ es la operación que se realiza después de cada iteración. La operación suele ser un incremento o decremento. Como 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.

Es importante comprender que los tres componentes del bucle forinitialization, condition y operation — son opcionales. Puedes omitir cualquiera de ellos, pero esto podría cambiar el comportamiento del bucle.

Aunque no se recomienda, puedes declarar la variable del bucle fuera del mismo y dejar vacía la parte de initialization. Esto significa que el bucle seguirá funcionando, pero debes tener cuidado, ya que podría provocar resultados inesperados si no se maneja correctamente.

main.cs

main.cs

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 incrementándose después de cada iteración.

main.cs

main.cs

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 aún colocamos un punto y coma (;) en la sintaxis del bucle donde se esperaba int i = 0. Este punto y coma siempre debe estar presente, ya sea que creemos una variable de bucle o no.

También es posible eliminar la condición del bucle, pero esto hace que el bucle se ejecute infinitamente si no se termina manualmente (lo cual aprenderemos en capítulos posteriores).

main.cs

main.cs

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"); } } } }

Nota

Seguimos incluyendo ambos puntos y coma 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 aprovecharlo. Para entender esto, veamos un programa sencillo que muestra el valor de i en cada iteración:

main.cs

main.cs

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

Observa que termina en 9 porque comienza con el dígito 0. El número total de iteraciones fue diez. Podemos modificar la inicializació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 aquellos 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 en estos ejemplos solo trabajaremos con números pares mayores que 0.

main.cs

main.cs

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 abreviada 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 en 0 y aumenta el valor de i en 2 en cada iteración. Cambiamos la condición a i <= 20 para que el bucle se detenga en 20.

La lógica anterior fue solo para comprender el funcionamiento de un bucle for. Podemos utilizar una lógica mucho más sencilla para mostrar los primeros diez números pares:

main.cs

main.cs

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 sencilla. Por ejemplo, si queremos los primeros 27 números pares, tendríamos que saber cuál es el vigésimo séptimo número par para poder formar la condición en el método anterior; sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27:

main.cs

main.cs

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); } } } }
question mark

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

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookBucle For

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

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

for(initiation; condition; operation) { 
    // code to execute
}


Consideremos un ejemplo donde utilizamos esta sintaxis:

main.cs

main.cs

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 equivalente a i = i + 1. Incrementa el valor de la variable en 1. De manera similar, i-- decrementa el valor en 1.

  • int i = 0 es la parte de inicialización. La inicialización ocurre cuando el bucle comienza. Al inicio del bucle, se crea una nueva variable temporal llamada i y se inicializa con el valor 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 mientras la condición sea verdadera.
  • i++ es la operación que se realiza después de cada iteración. La operación suele ser un incremento o decremento. Como 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.

Es importante comprender que los tres componentes del bucle forinitialization, condition y operation — son opcionales. Puedes omitir cualquiera de ellos, pero esto podría cambiar el comportamiento del bucle.

Aunque no se recomienda, puedes declarar la variable del bucle fuera del mismo y dejar vacía la parte de initialization. Esto significa que el bucle seguirá funcionando, pero debes tener cuidado, ya que podría provocar resultados inesperados si no se maneja correctamente.

main.cs

main.cs

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 incrementándose después de cada iteración.

main.cs

main.cs

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 aún colocamos un punto y coma (;) en la sintaxis del bucle donde se esperaba int i = 0. Este punto y coma siempre debe estar presente, ya sea que creemos una variable de bucle o no.

También es posible eliminar la condición del bucle, pero esto hace que el bucle se ejecute infinitamente si no se termina manualmente (lo cual aprenderemos en capítulos posteriores).

main.cs

main.cs

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"); } } } }

Nota

Seguimos incluyendo ambos puntos y coma 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 aprovecharlo. Para entender esto, veamos un programa sencillo que muestra el valor de i en cada iteración:

main.cs

main.cs

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

Observa que termina en 9 porque comienza con el dígito 0. El número total de iteraciones fue diez. Podemos modificar la inicializació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 aquellos 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 en estos ejemplos solo trabajaremos con números pares mayores que 0.

main.cs

main.cs

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 abreviada 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 en 0 y aumenta el valor de i en 2 en cada iteración. Cambiamos la condición a i <= 20 para que el bucle se detenga en 20.

La lógica anterior fue solo para comprender el funcionamiento de un bucle for. Podemos utilizar una lógica mucho más sencilla para mostrar los primeros diez números pares:

main.cs

main.cs

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 sencilla. Por ejemplo, si queremos los primeros 27 números pares, tendríamos que saber cuál es el vigésimo séptimo número par para poder formar la condición en el método anterior; sin embargo, en este caso simplemente necesitamos modificar la condición a i <= 27:

main.cs

main.cs

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); } } } }
question mark

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

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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